@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/app/assets/fraunces-vietnamese-wght-normal-CnvboYUG.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/app/assets/fraunces-latin-ext-wght-normal-Ca2vKHc0.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/app/assets/fraunces-latin-wght-normal-ukD16Tqj.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/app/assets/dm-sans-latin-ext-wght-normal-BOFOeGcA.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/app/assets/dm-sans-latin-wght-normal-Xz1IZZA0.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#faf4ee;--surface:#fff;--surface-2:#f2e8de;--line:#e6d8cb;--ink:#2a1f2b;--ink-muted:#6b5a66;--accent:#b4433c;--accent-soft:#f6ddd6;--accent-soft-ink:#7c2e29;--night:#1b1f3b;--night-2:#262b52;--night-3:#2f3563;--night-ink:#f2edff;--night-muted:#b9b6dc;--warm-dark:#2b1620;--warm-glow:#f6b28f;--party-bg:#1e1428;--button-ink:#fff;--font-body:"DM Sans Variable", system-ui, sans-serif;--font-heading:"Fraunces Variable", Georgia, serif;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--space-12:48px;--space-16:64px;--text-small:12px;--text-body:16px;--text-lead:18px;--text-title:clamp(28px, 5vw, 48px);--radius-card:24px;--radius-button:28px;--radius-field:14px;--radius-pill:999px;--touch:44px;--button-height:56px;--content:1080px;--reading:620px;--weight-normal:400;--weight-medium:500;--weight-bold:600;--tracking-heading:-.02em;--tracking-label:.06em;--line-body:1.65;--line-title:1.15;--border-width:1px;--focus-width:3px}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:var(--text-body);line-height:var(--line-body);margin:0}a{color:inherit}button{font:inherit}:focus-visible{outline:var(--focus-width) solid var(--accent);outline-offset:var(--space-1)}.shell{max-width:var(--content);padding:var(--space-6);margin-inline:auto}.header{align-items:center;gap:var(--space-3);padding-block:var(--space-4);display:flex}.brand-name{font-family:var(--font-heading);font-weight:var(--weight-bold)}.brand-mark{padding-right:var(--space-2);align-items:center;display:inline-flex}.brand-mark span{width:var(--space-6);height:var(--space-6);border-radius:var(--radius-pill);background:var(--accent)}.brand-mark span+span{background:var(--ink);margin-left:calc(-1 * var(--space-2));opacity:.8}.hero{max-width:var(--reading);padding-block:var(--space-16)}.eyebrow{font-size:var(--text-small);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--accent);font-weight:var(--weight-bold)}h1,h2{font-family:var(--font-heading);font-weight:var(--weight-bold);letter-spacing:var(--tracking-heading);line-height:var(--line-title)}h1{font-size:var(--text-title);margin-block:var(--space-6)}.lead{font-size:var(--text-lead)}.muted{color:var(--ink-muted)}.button{min-height:var(--button-height);padding-inline:var(--space-6);border-radius:var(--radius-button);background:var(--accent);color:var(--button-ink);font-weight:var(--weight-bold);cursor:pointer;border:0;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.card{padding:var(--space-6);background:var(--surface);border:var(--border-width) solid var(--line);border-radius:var(--radius-card);margin-block:var(--space-6)}.skip{top:calc(-1 * var(--space-16));padding:var(--space-3);background:var(--surface);position:absolute}.skip:focus{top:var(--space-2)}.theme-grid{gap:var(--space-3);margin-block:var(--space-6);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.theme-option{gap:var(--space-3);min-height:var(--button-height);padding:var(--space-4);border:var(--border-width) solid var(--line);border-radius:var(--radius-field);background:var(--surface);color:var(--ink);cursor:pointer;align-items:center;display:flex}.swatch{width:var(--space-6);height:var(--space-6);border-radius:var(--radius-pill);background:var(--swatch);display:inline-block}.theme-preview{background:var(--preview-bg);color:var(--preview-ink);padding:var(--space-8);border-radius:var(--radius-card)}.theme-preview .button{background:var(--preview-accent);color:var(--preview-button-ink)}.footer{border-top:var(--border-width) solid var(--line);padding-block:var(--space-6)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@font-face{font-family:Caveat Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/app/assets/caveat-cyrillic-ext-wght-normal-DiMfzA-V.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Caveat Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/app/assets/caveat-cyrillic-wght-normal-D5lnP6kL.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Caveat Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/app/assets/caveat-latin-ext-wght-normal-Byk3UhVp.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Caveat Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/app/assets/caveat-latin-wght-normal-C1hSzPvX.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1)}}@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.block{display:block}.grid{display:grid}.hidden{display:none}.list-item{display:list-item}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.rounded{border-radius:.25rem}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}.auth-shell{max-width:var(--content);padding:var(--space-6);margin:auto}.auth-header{justify-content:space-between;align-items:center;gap:var(--space-4);padding-block:var(--space-4) var(--space-8);border-bottom:1px solid var(--line);display:flex}.auth-header>a:last-child{min-height:var(--touch);align-items:center;font-size:14px;display:flex}.auth-brand{align-items:center;gap:var(--space-2);font-family:var(--font-heading);font-weight:var(--weight-bold);text-decoration:none;display:flex}.auth-grid{gap:var(--space-16);padding-block:var(--space-12);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;display:grid}.auth-panel{overflow-wrap:anywhere;align-self:center;width:100%;min-width:0;max-width:480px}.auth-panel h1{font-size:clamp(32px,4vw,45px);font-weight:500}.auth-intro{color:var(--ink-muted);margin-bottom:var(--space-6)}.auth-notice{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-field);padding:var(--space-4);margin-block:var(--space-6);font-size:14px}.auth-notice strong{letter-spacing:var(--tracking-label);color:var(--accent-soft-ink);font-size:11px}.auth-notice p{margin-block:var(--space-2)}.auth-form{gap:var(--space-3);flex-direction:column;display:flex}.auth-form>label{font-weight:var(--weight-bold);font-size:14px}.auth-form input:not([type=checkbox]):not([type=radio]),.auth-form select{width:100%;min-width:0;min-height:var(--button-height);border:1px solid var(--ink-muted);border-radius:var(--radius-field);padding:var(--space-4);font:inherit;background:var(--surface);color:var(--ink)}.auth-checks{gap:var(--space-3);margin-block:var(--space-3);flex-direction:column;font-size:14px;display:flex}.auth-checks label{align-items:flex-start;gap:var(--space-3);min-height:var(--touch);cursor:pointer;display:flex}.auth-checks input{width:20px;height:20px;accent-color:var(--accent);margin-top:var(--space-1);flex-shrink:0}.auth-small{color:var(--ink-muted);font-size:13px}.auth-primary{width:100%;margin-top:var(--space-2)}.button:disabled{opacity:.6;cursor:not-allowed}.auth-text-button{color:var(--ink);cursor:pointer;min-height:var(--touch);background:0 0;border:0;text-decoration:underline}.auth-error{color:var(--accent-soft-ink);background:var(--accent-soft);padding:var(--space-3);border-radius:var(--radius-field)}.auth-social{gap:var(--space-3);flex-direction:column;display:flex}.secondary{background:var(--surface);border:1px solid var(--ink-muted);color:var(--ink)}.auth-divider{gap:var(--space-4);color:var(--ink-muted);margin-block:var(--space-6);align-items:center;font-size:14px;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--line);flex:1;height:1px}.auth-switch{margin-top:var(--space-6);font-size:14px}.auth-switch a{color:var(--accent);font-weight:var(--weight-bold)}.auth-story{border-radius:220px 220px var(--radius-card) var(--radius-card);background:var(--night);min-width:0;color:var(--night-ink);min-height:640px;position:relative;overflow:hidden}.auth-story img{object-fit:cover;opacity:.65;width:100%;height:640px;display:block}.auth-story>div{padding:var(--space-8);background:linear-gradient(transparent, var(--night));padding-top:var(--space-16);position:absolute;inset:auto 0 0}.auth-story .eyebrow{color:var(--night-ink);font-size:11px}.auth-story h2{font-size:34px;font-weight:500}.auth-story p{font-size:15px}.auth-footer{justify-content:center;gap:var(--space-4);color:var(--ink-muted);padding:var(--space-6);flex-wrap:wrap;font-size:13px;display:flex}.auth-footer a{min-height:var(--touch)}.auth-loading{padding-block:var(--space-12);color:var(--ink-muted)}.auth-signout{margin-top:var(--space-6)}@media (width<=960px){.auth-shell{padding:var(--space-4) var(--space-6)}.auth-header{flex-wrap:wrap;align-items:flex-start;font-size:14px}.auth-header>a:last-child{text-align:right;font-size:12px}.auth-grid{padding-block:var(--space-8);display:block}.auth-panel{margin:auto}.auth-story{display:none}.auth-footer{padding-inline:0}.auth-brand{gap:0;font-size:16px}.auth-header .brand-mark span{width:20px;height:20px}}.auth-panel .button{white-space:normal;text-align:center;max-width:100%;padding-block:var(--space-3)}@media (width<=380px){.auth-shell{padding-inline:var(--space-4)}}.world-fields{gap:var(--space-3);border:0;min-width:0;margin:0;padding:0;display:grid}.world-preview{border-radius:var(--radius-card);padding:var(--space-6);margin-block:var(--space-4);border:1px solid var(--line);overflow-wrap:anywhere}.world-preview .eyebrow{color:inherit}.world-preview h2{font-family:var(--font-heading);font-size:28px;line-height:1.2}.world-heart{color:var(--world-accent);font-size:48px}.world-heart:before{content:"♡"}.world-themes{gap:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.world-themes label,.world-check{align-items:center;gap:var(--space-3);min-width:0;padding:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-field);min-height:var(--touch);cursor:pointer;display:flex}.world-themes label:has(input:checked){border-color:var(--accent)}.world-check:has(input:checked){border-color:var(--accent)}.world-themes input,.world-check input{width:20px;height:20px;min-height:20px;accent-color:var(--accent);flex:none;margin:0;padding:0}.world-themes span{border-radius:50%;flex:none;width:16px;height:16px}.world-module-list{padding-left:var(--space-6)}.world-module-list li{padding-block:var(--space-2)}.world-share{gap:var(--space-4);flex-wrap:wrap;display:flex}.world-share a{overflow-wrap:anywhere;max-width:100%;min-height:var(--touch);align-items:center;display:inline-flex}.world-code{letter-spacing:.15em;font-size:24px;font-weight:600}.world-invitation{margin-top:var(--space-6)}.invitation-page .auth-grid{max-width:720px;margin-inline:auto;display:block}.invitation-page .auth-panel{max-width:none}.invitation-page .auth-story{display:none}.invitation-welcome{background:var(--welcome-bg);color:var(--welcome-ink);border:1px solid var(--line);border-radius:var(--radius-card);overflow:hidden}.invitation-photo{height:clamp(180px,30vw,280px);position:relative}.invitation-photo img{object-fit:cover;object-position:center 52%;width:100%;height:100%;display:block}.invitation-heart{inset:auto var(--space-6) -24px auto;background:var(--welcome-accent);width:60px;height:60px;color:var(--welcome-button);border-radius:50%;place-items:center;font-size:36px;display:grid;position:absolute}.invitation-heart:before{content:"♡"}.invitation-message{padding:var(--space-8);overflow-wrap:anywhere}.invitation-message .eyebrow{color:inherit;margin-top:var(--space-4)}.invitation-message h1{font-size:clamp(28px,5vw,42px);line-height:1.15}.invitation-world-name{font-family:var(--font-heading);font-size:24px}.invitation-message .button{background:var(--welcome-accent);color:var(--welcome-button)}.preview-toolbar{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.preview-toolbar span{font-weight:var(--weight-bold)}.preview-toolbar a{min-height:var(--touch);align-items:center;display:inline-flex}.preview-cta{cursor:default}@media (width<=480px){.invitation-message{padding:var(--space-6)}}.invitation-personal{white-space:pre-wrap;font-family:var(--font-heading);font-size:19px}:root[data-space=aube]{--bg:#faf4ee;--surface-2:#f2e8de;--line:#e6d8cb;--ink:#2a1f2b;--ink-muted:#6b5a66;--accent:#b4433c;--accent-soft:#f6ddd6;--accent-soft-ink:#7c2e29;--button-ink:#fff}:root[data-space=nuit]{--bg:#1b1f3b;--surface:#262b52;--surface-2:#2f3563;--line:#3d4478;--ink:#f2edff;--ink-muted:#b9b6dc;--accent:#8e86e8;--accent-soft:#3a3570;--accent-soft-ink:#e4e0ff;--button-ink:#2a1f2b;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-space=sauge]{--bg:#eef2ea;--surface-2:#e2e9dc;--line:#cfdac7;--ink:#23301f;--ink-muted:#56644f;--accent:#4e6b4a;--accent-soft:#dce7d6;--accent-soft-ink:#2f432c;--button-ink:#fff}:root[data-space=ocean]{--bg:#e9f2f6;--surface-2:#dbe8ef;--line:#c6d9e3;--ink:#17303d;--ink-muted:#4c6572;--accent:#2f6a8a;--accent-soft:#d3e5ef;--accent-soft-ink:#1c4a63;--button-ink:#fff}:root[data-space=cerise]{--bg:#fbedef;--surface-2:#f5dde1;--line:#ecc9cf;--ink:#3a1420;--ink-muted:#6e4450;--accent:#a32848;--accent-soft:#f7d6de;--accent-soft-ink:#751a33;--button-ink:#fff}:root[data-space=sable]{--bg:#f4ede0;--surface-2:#ebe1cf;--line:#ddd0b9;--ink:#33281a;--ink-muted:#675a47;--accent:#8a6a3b;--accent-soft:#eee0c8;--accent-soft-ink:#5c4524;--button-ink:#fff}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.space{max-width:640px;min-height:100dvh;padding:0 var(--space-4) calc(88px + env(safe-area-inset-bottom));overflow-wrap:anywhere;margin-inline:auto}.space-loading{max-width:640px;padding:var(--space-8) var(--space-4);margin:auto}.space-header{justify-content:space-between;align-items:center;gap:var(--space-3);padding-block:calc(var(--space-4) + env(safe-area-inset-top)) var(--space-3);border-bottom:1px solid var(--line);display:flex}.space-brand{align-items:center;gap:var(--space-2);min-height:var(--touch);font-family:var(--font-heading);font-weight:var(--weight-bold);min-width:0;text-decoration:none;display:flex}.space-brand span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.space-names{color:var(--ink-muted);text-align:right;font-size:14px}.space-offline{background:var(--surface-2);border-radius:var(--radius-field);padding:var(--space-3);margin-top:var(--space-3);font-size:14px}.space-main{padding-top:var(--space-4)}.space-main h1{margin-block:var(--space-2) var(--space-4);font-size:clamp(28px,7vw,40px)}.space-tabs{justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-4) calc(var(--space-2) + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line);z-index:10;display:flex;position:fixed;inset:auto 0 0}.space-tabs a{border-radius:var(--radius-field);max-width:160px;min-height:52px;color:var(--ink-muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:13px;text-decoration:none;display:flex}.space-tabs a.active{color:var(--accent);font-weight:var(--weight-bold);background:var(--accent-soft)}[data-icon]:before{font-size:20px;line-height:1}[data-icon=home]:before{content:"⌂"}[data-icon=settings]:before{content:"⚙"}[data-icon=souvenirs]:before{content:"📷"}[data-icon=petits-riens]:before{content:"✉"}[data-icon=calins]:before{content:"🤗"}[data-icon=bonne-nuit]:before{content:"🌙"}[data-icon=compteur]:before{content:"⏳"}[data-icon=add]:before{content:"+"}.space-banner{background:var(--accent-soft);color:var(--accent-soft-ink);border-radius:var(--radius-card);padding:var(--space-4);margin-block:var(--space-4);justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.space-banner p{margin:0}.space-counter-card{gap:var(--space-2);padding:var(--space-6);margin-block:var(--space-4);border-radius:var(--radius-card);background:var(--night);color:var(--night-ink);flex-direction:column;text-decoration:none;display:flex}.space-counter-card .eyebrow{color:var(--night-muted);margin:0}.space-counter-card strong{font-family:var(--font-heading);font-size:clamp(24px,6vw,32px);line-height:1.2}.space-section-title{margin-block:var(--space-6) var(--space-3);font-size:20px}.space-alerts,.space-grid,.note-list,.hug-history,.timeline,.settings-list,.settings-modules,.memory-photos{margin:0;padding:0;list-style:none}.space-alerts li+li{margin-top:var(--space-2)}.space-alerts a{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);min-height:var(--touch);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-field);text-decoration:none;display:flex}.space-alerts a span:first-of-type{flex:1}.space-badge{border-radius:var(--radius-pill);background:var(--accent);min-width:24px;height:24px;color:var(--button-ink);font-size:13px;font-weight:var(--weight-bold);place-items:center;padding-inline:6px;display:inline-grid}.space-grid{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.space-tile{gap:var(--space-1);height:100%;min-height:132px;padding:var(--space-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);flex-direction:column;text-decoration:none;display:flex;position:relative}.space-tile:before{margin-bottom:var(--space-2);font-size:28px}.space-tile-name{font-weight:var(--weight-bold)}.space-tile-text{color:var(--ink-muted);font-size:13px}.space-tile .space-badge{top:var(--space-3);right:var(--space-3);position:absolute}.space-tile-add{background:0 0;border-style:dashed}.module-page{gap:var(--space-3);flex-direction:column;display:flex}.module-header{position:relative}.module-header h1{margin-block:var(--space-1) var(--space-2)}.module-header .eyebrow{margin:var(--space-2) 0 0}.module-back{min-height:var(--touch);align-items:center;font-size:14px;display:inline-flex}.module-back:before{content:"←";margin-right:var(--space-2)}.module-add{min-height:var(--touch);padding-inline:var(--space-4);position:absolute;top:0;right:0}.module-empty{color:var(--ink-muted);padding:var(--space-6);text-align:center;background:var(--surface);border:1px dashed var(--line);border-radius:var(--radius-card)}.module-empty .button{margin-top:var(--space-3)}.chip{align-items:center;gap:var(--space-2);min-height:var(--touch);padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;font-size:14px;display:inline-flex}.chip:has(input:checked){border-color:var(--accent);background:var(--accent-soft);color:var(--accent-soft-ink)}.chip input{accent-color:var(--accent)}.chip:disabled{opacity:.4;cursor:not-allowed}.danger{color:#fff;background:#9f2d2d}textarea{border:1px solid var(--ink-muted);border-radius:var(--radius-field);width:100%;min-width:0;padding:var(--space-4);font:inherit;background:var(--surface);color:var(--ink);resize:vertical}.module-page input:not([type=checkbox]):not([type=radio]),.module-page select{width:100%;min-width:0;min-height:var(--button-height);border:1px solid var(--ink-muted);border-radius:var(--radius-field);padding:var(--space-3) var(--space-4);font:inherit;background:var(--surface);color:var(--ink)}.world-label,.world-fields legend{font-weight:var(--weight-bold);margin:var(--space-2) 0 0;font-size:14px}.note-composer{z-index:2;gap:var(--space-2);padding:var(--space-3);background:var(--surface-2);border-radius:var(--radius-card);flex-direction:column;display:flex;position:sticky;top:0}.note-composer-row{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.note-composer-row .button{min-height:var(--touch)}.note-day-title{font-family:var(--font-body);text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--ink-muted);text-align:center;margin-block:var(--space-4) var(--space-2);font-size:13px}.note-list{gap:var(--space-2);flex-direction:column;display:flex}.note{max-width:85%;padding:var(--space-3) var(--space-4);background:var(--surface);border:1px solid var(--line);word-break:break-word;border-radius:20px;position:relative}.note p{margin:0 0 var(--space-1);white-space:pre-wrap}.note-mine{background:var(--accent-soft);color:var(--accent-soft-ink);border-color:#0000;border-bottom-right-radius:6px;align-self:flex-end}.note-theirs{border-bottom-left-radius:6px;align-self:flex-start}.note-meta{opacity:.8;font-size:12px}.note-new{background:var(--accent);width:10px;height:10px;margin-left:var(--space-2);vertical-align:middle;border-radius:50%;display:inline-block}.note-theirs .note-new{margin:0;position:absolute;top:-4px;right:-4px}.note-delete,.note-actions .auth-text-button{min-height:32px;padding:0 var(--space-2) 0 0;color:inherit;font-size:12px}.hug-form{align-items:stretch;gap:var(--space-3);flex-direction:column;display:flex}.hug-form>label{font-weight:var(--weight-bold);font-size:14px}.hug-button{aspect-ratio:1;background:radial-gradient(circle at 50% 40%, var(--warm-glow), var(--accent));color:#fff;width:min(220px,60vw);font-weight:var(--weight-bold);box-shadow:0 0 0 16px var(--accent-soft), 0 0 60px 20px var(--accent-soft);cursor:pointer;margin-block:var(--space-6);padding:var(--space-6);border:0;border-radius:50%;align-self:center;font-size:18px;animation:3s ease-in-out infinite halo}.hug-button-waiting{opacity:.6;width:140px;display:block}.hug-button:disabled{opacity:.6}@keyframes halo{50%{box-shadow:0 0 0 24px var(--accent-soft), 0 0 80px 30px var(--accent-soft)}}.hug-pending{text-align:center;flex-direction:column;align-items:center;display:flex}.hug-suggestions{gap:var(--space-2);flex-wrap:wrap;display:flex}.hug-request-text,.hug-content blockquote{font-family:var(--font-heading);text-align:center;margin:var(--space-2) 0;font-size:22px}.hug-history{gap:var(--space-2);flex-direction:column;display:flex}.hug-history li{gap:var(--space-1);padding:var(--space-3) var(--space-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-field);flex-direction:column;display:flex}.hug-overlay{z-index:50;background:var(--warm-dark);color:#fff6ef;padding:var(--space-6);text-align:center;place-items:center;display:grid;position:fixed;inset:0}.hug-glow{background:radial-gradient(circle at center, var(--warm-glow) 0%, transparent 60%);opacity:.85;animation:2.4s ease-out forwards glow;position:absolute;inset:0}@keyframes glow{0%{opacity:0;transform:scale(.1)}to{opacity:.85;transform:scale(1.4)}}.hug-content{gap:var(--space-3);flex-direction:column;align-items:center;max-width:420px;display:flex;position:relative}.hug-content .eyebrow{color:#ffd9c4}.hug-content h2{margin:0;font-size:32px}.module-night{margin-inline:calc(-1 * var(--space-4));padding:var(--space-4);border-radius:var(--radius-card);background:linear-gradient(180deg, #0f1230, var(--night) 60%, var(--night-2));min-height:70vh;color:var(--night-ink);--ink:var(--night-ink);--ink-muted:var(--night-muted);--surface:var(--night-2);--line:var(--night-3);--accent:#8e86e8;--button-ink:#2a1f2b;position:relative;overflow:hidden}.night-stars{pointer-events:none;opacity:.7;background-image:radial-gradient(1px 1px at 10% 20%,#fff 50%,#0000),radial-gradient(1px 1px at 30% 70%,#fff 50%,#0000),radial-gradient(1.5px 1.5px at 60% 15%,#fff 50%,#0000),radial-gradient(1px 1px at 80% 40%,#fff 50%,#0000),radial-gradient(1px 1px at 90% 80%,#fff 50%,#0000),radial-gradient(1.5px 1.5px at 45% 45%,#fff 50%,#0000);position:absolute;inset:0}.module-night>*{position:relative}.module-night .eyebrow{color:var(--night-muted)}.night-clocks{color:var(--night-muted);font-size:14px}.night-cards{gap:var(--space-3);display:grid}.night-together{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.night-card{padding:var(--space-4);border:1px solid var(--night-3);border-radius:var(--radius-card);background:#ffffff0f}.night-card h2{margin-top:0;font-size:18px}.night-text{font-family:var(--font-heading);white-space:pre-wrap;font-size:20px}.night-reminder{margin-top:var(--space-4);font-size:14px}.night-reminder-form{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.night-reminder-form input{width:auto!important}.counter-value{font-family:var(--font-heading);margin:0;font-size:clamp(30px,8vw,44px);line-height:1.15}.counter-formats{gap:var(--space-2);border:0;flex-wrap:wrap;margin:0;padding:0;display:flex}.counter-formats legend{font-weight:var(--weight-bold);margin-bottom:var(--space-2);font-size:14px}.counter-settings{margin-top:var(--space-4)}.counter-settings>label{font-weight:var(--weight-bold);font-size:14px}.surprise{z-index:60;background:radial-gradient(circle at 50% 30%, #3b2350, var(--party-bg) 70%);color:#fff4ea;padding:calc(var(--space-4) + env(safe-area-inset-top)) var(--space-6) var(--space-8);text-align:center;align-items:center;gap:var(--space-3);flex-direction:column;display:flex;position:fixed;inset:0;overflow-y:auto}.surprise .eyebrow{color:#f6b28f}.surprise h1{max-width:520px;margin:0;font-size:clamp(28px,7vw,40px)}.surprise .auth-text-button,.surprise .auth-small{color:#f2e7ff}.surprise .secondary{color:#fff4ea;background:0 0;border-color:#f2e7ff}.surprise-top{justify-content:space-between;align-self:stretch;align-items:center;display:flex}.surprise-top .auth-text-button{margin-left:auto}.surprise-badge{color:#2b1620;font-weight:var(--weight-bold);padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);background:#f6b28f;font-size:12px}.surprise-actions{gap:var(--space-3);flex-direction:column;align-items:center;width:min(360px,100%);display:flex}.surprise-actions .button{width:100%}.cake{width:200px;height:180px;margin-block:var(--space-4);position:relative}.cake-body{background:linear-gradient(#fbedef 0 28%,#b4433c 28% 36%,#f6ddd6 36% 100%);border-radius:16px 16px 8px 8px;height:100px;position:absolute;bottom:0;left:10px;right:10px}.cake-candles{justify-content:center;gap:32px;display:flex;position:absolute;bottom:100px;left:0;right:0}.candle{background:repeating-linear-gradient(45deg,#8e86e8 0 6px,#f2edff 6px 12px);border-radius:3px;width:10px;height:46px;position:relative}.flame{background:radial-gradient(circle at 50% 70%,#fff6c9,#f6b28f 60%,#0000 70%);border-radius:50%/60% 60% 40% 40%;width:20px;height:26px;animation:.6s ease-in-out infinite alternate flicker;position:absolute;top:-26px;left:-5px}.surprise-party .flame{opacity:0;transition:all .6s;transform:scale(.2)}@keyframes flicker{to{transform:scale(1.1)rotate(3deg)}}.level{border-radius:var(--radius-pill);background:#ffffff26;width:100%;height:12px;overflow:hidden}.level span{background:#f6b28f;height:100%;transition:width .1s linear;display:block}.surprise-letter{color:#2a1f2b;border-radius:var(--radius-card);width:100%;max-width:520px;padding:var(--space-6);text-align:left;background:#fff8f1;animation:.8s ease-out .4s both rise;position:relative}.surprise-letter h2{margin-top:0}.surprise-letter-text{white-space:pre-wrap}@keyframes rise{0%{opacity:0;transform:translateY(24px)}}.confetti{pointer-events:none;position:fixed;inset:0;overflow:hidden}.confetti span{background:#f6b28f;width:8px;height:14px;animation:2.8s linear forwards fall;position:absolute;top:-20px}.confetti span:nth-child(3n){background:#8e86e8}.confetti span:nth-child(3n+1){background:#b4433c}@keyframes fall{to{transform:translateY(110vh)rotate(540deg)}}.timeline{padding-left:var(--space-6);position:relative}.timeline:before{content:"";background:var(--line);width:2px;position:absolute;top:8px;bottom:8px;left:7px}.timeline li+li{margin-top:var(--space-4)}.timeline-item{gap:var(--space-1);padding:var(--space-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);flex-direction:column;text-decoration:none;display:flex;position:relative}.timeline-dot{left:calc(-1 * var(--space-6) + 2px);background:var(--accent);width:12px;height:12px;box-shadow:0 0 0 4px var(--bg);border-radius:50%;position:absolute;top:20px}.timeline-date{color:var(--accent);font-size:13px;font-weight:var(--weight-bold)}.timeline-item strong{font-family:var(--font-heading);font-size:20px}.timeline-text{color:var(--ink-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.timeline-photo{object-fit:cover;border-radius:var(--radius-field);width:100%;max-height:220px;margin-top:var(--space-2)}.memory-text{white-space:pre-wrap;font-size:17px}.memory-photos{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(140px,1fr));display:grid}.memory-photo{aspect-ratio:1;border-radius:var(--radius-field);cursor:zoom-in;background:var(--surface-2);border:0;width:100%;padding:0;display:block;overflow:hidden}.memory-photo img,.memory-photos-edit img{object-fit:cover;width:100%;height:100%;display:block}.memory-photos-edit li{gap:var(--space-1);flex-direction:column;display:flex}.memory-photos-edit img,.memory-photo-loading{aspect-ratio:1;border-radius:var(--radius-field);background:var(--surface-2);display:block}.memory-actions{gap:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.file-button{cursor:pointer}.viewer{z-index:70;color:#fff;background:#0b0b0f;flex-direction:column;display:flex;position:fixed;inset:0}.viewer-bar{justify-content:flex-end;gap:var(--space-3);padding:calc(var(--space-2) + env(safe-area-inset-top)) var(--space-4) var(--space-2);display:flex}.viewer-bar .auth-text-button{color:#fff}.viewer-image{touch-action:pinch-zoom pan-x pan-y;flex:1;place-items:center;display:grid;overflow:auto}.viewer-image img{object-fit:contain;max-width:100%;max-height:100%}.viewer-image.zoomed img{width:200%;max-width:none;max-height:none}.settings-list{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);overflow:hidden}.settings-list li+li{border-top:1px solid var(--line)}.settings-list a{padding:var(--space-4);min-height:var(--button-height);justify-content:space-between;align-items:center;text-decoration:none;display:flex}.settings-list a:after{content:"›";color:var(--ink-muted);font-size:22px}.settings-block{margin-top:var(--space-4);padding-top:var(--space-2);border-top:1px solid var(--line)}.settings-block .button{margin-top:var(--space-2)}.settings-danger h2{color:#9f2d2d}:root[data-space=nuit] .settings-danger h2{color:#ffb4b4}.settings-modules{gap:var(--space-2);flex-direction:column;display:flex}.settings-modules li{align-items:center;gap:var(--space-2);display:flex}.settings-modules .world-check{flex:1}.settings-modules .chip{min-width:var(--touch);padding-inline:var(--space-2);justify-content:center}.settings-times{gap:var(--space-2) var(--space-3);grid-template-columns:auto 1fr;align-items:center;display:grid}.install-steps{padding-left:var(--space-6)}.install-steps li{padding-block:var(--space-2)}.install-night{padding:var(--space-6);border-radius:var(--radius-card);background:var(--night);color:var(--night-ink)}.install-night h2{margin-top:0}.space-calm *,.space-calm :before,.space-calm :after{transition:none!important;animation:none!important}@media (width>=720px){.space{padding-inline:var(--space-6)}.module-night{margin-inline:0}}.space-backdrop{z-index:-1;position:fixed;inset:0}.space-backdrop:after{content:"";background:linear-gradient(180deg, transparent 0%, color-mix(in srgb, var(--bg) 35%, transparent) 100%);position:absolute;inset:0}[data-icon=edit]:before{content:"✎"}[data-icon=style]:before{content:"🎨"}[data-icon=templates]:before{content:"🧩"}[data-icon=welcome]:before{content:"💌"}[data-icon=rendez-vous]:before{content:"📅"}[data-icon=liste]:before{content:"✅"}[data-icon=question]:before{content:"💬"}[data-icon=humeur]:before{content:"🌤"}[data-icon=titre]:before,[data-icon=texte]:before{content:"✍"}[data-icon=citation]:before{content:"❝"}[data-icon=photo]:before{content:"🖼"}[data-icon=sticker]:before{content:"💛"}[data-icon=compte-a-rebours]:before{content:"⏰"}[data-icon=musique]:before{content:"🎵"}[data-icon=lien]:before{content:"🔗"}.home-head{justify-content:space-between;align-items:flex-start;gap:var(--space-3);display:flex}.home-head .eyebrow{margin-bottom:0}.home-edit{min-height:var(--touch);padding-inline:var(--space-4);margin-top:var(--space-4);flex:none}.editor-bar{z-index:5;gap:var(--space-2);padding:var(--space-2) 0;background:var(--bg);scrollbar-width:none;display:flex;position:sticky;top:0;overflow-x:auto}.editor-bar .chip{flex:none;text-decoration:none}.editor-bar .chip:before{font-size:16px}.editor-hint{margin-top:0}.block-grid{margin:var(--space-3) 0 0;gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:auto;grid-auto-flow:dense;padding:0;list-style:none;display:grid}.grid-item{min-width:0;display:flex}.grid-s{grid-column:span 1}.grid-m{grid-column:span 2}.grid-t{grid-area:span 2/span 1}.grid-l{grid-area:span 2/span 2}.block{gap:var(--space-1);min-width:0;padding:var(--space-4);border-radius:var(--radius-card);border:1px solid var(--line);background:var(--surface);color:var(--ink);text-align:left;font:inherit;flex-direction:column;flex:1;min-height:128px;text-decoration:none;display:flex;position:relative;overflow:hidden}.grid-t .block,.grid-l .block{min-height:268px}.block-type-titre,.grid-t .block-type-titre,.grid-l .block-type-titre{min-height:0}.block-type-compteur{justify-content:center}a.block:active,.block-handle:active .block{transform:scale(.98)}.block:before{margin-bottom:var(--space-1);font-size:24px;line-height:1}.block-type-titre:before,.block-type-texte:before,.block-type-citation:before,.block-type-photo:before,.block-type-sticker:before{display:none}.tone-soft{background:var(--accent-soft);color:var(--accent-soft-ink);border-color:#0000}.tone-accent{background:var(--accent);color:var(--button-ink);border-color:#0000}.tone-night{background:var(--night);color:var(--night-ink);border-color:#0000}.tone-clear{padding-inline:var(--space-2);background:0 0;border-color:#0000}.tone-accent .auth-small,.tone-night .auth-small{color:inherit}.block-title{justify-content:space-between;align-items:center;gap:var(--space-2);font-weight:var(--weight-bold);display:flex}.block-text{opacity:.85;font-size:14px}.block-big{font-family:var(--font-heading);font-size:clamp(22px,6vw,30px);line-height:1.15}.grid-l .block-big{font-size:clamp(28px,8vw,40px)}.block-quote{gap:var(--space-1);font-family:var(--font-heading);-webkit-line-clamp:4;-webkit-box-orient:vertical;flex-direction:column;font-size:17px;line-height:1.3;display:-webkit-box;overflow:hidden}.block-quote small{font-family:var(--font-body);opacity:.75;font-size:12px;display:block}.block-heading{font-family:var(--font-heading);font-size:clamp(26px,7vw,36px);line-height:1.1;font-weight:var(--weight-bold);margin-block:auto}.block-body{white-space:pre-wrap;line-height:1.5}.font-serif{font-family:Fraunces Variable,Georgia,serif}.font-sans{font-family:var(--font-body)}.font-script{font-family:Caveat Variable,Segoe Script,cursive;font-size:1.25em}.font-rounded{font-family:ui-rounded,SF Pro Rounded,system-ui,sans-serif}.block-citation{gap:var(--space-2);font-family:var(--font-heading);flex-direction:column;margin-block:auto;font-size:19px;line-height:1.35;display:flex}.block-citation small{font-family:var(--font-body);opacity:.8;font-size:13px}.block-sticker{text-align:center;align-items:center;gap:var(--space-1);flex-direction:column;margin:auto;display:flex}.block-sticker>span{font-size:56px;line-height:1}.grid-l .block-sticker>span,.grid-t .block-sticker>span{font-size:88px}.block-photo{z-index:0;gap:2px;display:grid;position:absolute;inset:0}.block-photo img{object-fit:cover;width:100%;height:100%;min-height:0}.block-photo-2{grid-template-columns:1fr 1fr}.block-photo-3{grid-template-rows:1fr 1fr;grid-template-columns:2fr 1fr}.block-photo-3 img:first-child{grid-row:span 2}.block-photo-4{grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr}.block-photo-empty{background:repeating-linear-gradient(45deg, var(--surface-2) 0 10px, transparent 10px 20px)}:is(.block-type-photo,.block-type-souvenirs:has(.block-photo)){color:#fff;border-color:#0000;justify-content:flex-end}.block-type-photo>:not(.block-photo),.block-type-souvenirs>:not(.block-photo){z-index:1;position:relative}.block-type-souvenirs:has(.block-photo):after{content:"";z-index:0;background:linear-gradient(#0000,#0000008c);position:absolute;inset:40% 0 0}.block-type-photo:has(.block-caption):after{content:"";z-index:0;background:linear-gradient(#0000,#0000008c);position:absolute;inset:40% 0 0}.block-type-souvenirs:has(.block-photo):before{z-index:1;position:relative}.block-type-photo .block-text{color:var(--ink);margin:auto}.block-caption{font-family:var(--font-heading);font-size:18px}.block-list{margin:var(--space-1) 0 0;padding-left:var(--space-4);font-size:14px}.block-moods{gap:var(--space-3);margin-top:auto;font-size:34px;display:flex}.block-embed{border-radius:var(--radius-field);width:100%;height:80px;margin-top:var(--space-2);border:0}.block-embed.tall{height:232px}.block-add{cursor:pointer;color:var(--ink-muted);background:0 0;border-style:dashed;justify-content:center;align-items:center}.block-add:before{font-size:32px}.block-handle{all:unset;box-sizing:border-box;cursor:grab;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border-radius:var(--radius-card);flex:1;min-width:0;display:flex;position:relative}.block-handle:focus-visible{outline:var(--focus-width) solid var(--accent);outline-offset:2px}.editing .block{outline:2px dashed color-mix(in srgb, var(--accent) 45%, transparent);outline-offset:-2px;animation:.5s ease-in-out infinite alternate wiggle}.editing .grid-item:nth-child(2n) .block{animation-delay:.25s}@keyframes wiggle{0%{transform:rotate(-.4deg)}to{transform:rotate(.4deg)}}.grid-item.dragging{z-index:20;opacity:.9}.grid-item.dragging .block{animation:none;box-shadow:0 12px 30px #0003}.block-edit-badge{background:var(--accent);width:28px;height:28px;color:var(--button-ink);z-index:2;border-radius:50%;place-items:center;font-size:14px;display:grid;position:absolute;top:8px;right:8px}.block-edit-badge:before{content:"✎"}.sheet-layer{z-index:80;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet-scrim{cursor:pointer;background:#140c1873;border:0;position:absolute;inset:0}.sheet{background:var(--bg);width:min(640px,100%);max-height:88dvh;color:var(--ink);border-radius:24px 24px 0 0;outline:none;flex-direction:column;animation:.22s ease-out sheet-in;display:flex;position:relative;box-shadow:0 -8px 40px #0003}@keyframes sheet-in{0%{opacity:0;transform:translateY(40px)}}.sheet-head{padding:var(--space-4) var(--space-4) var(--space-2);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;display:flex}.sheet-head h2{margin:0;font-size:20px}.sheet-body{padding:var(--space-4) var(--space-4) calc(var(--space-8) + env(safe-area-inset-bottom));overflow-y:auto}.sheet-body h3{margin:var(--space-4) 0 var(--space-2);font-size:16px}.block-choices{gap:var(--space-2);border:0;flex-wrap:wrap;margin:0;padding:0;display:flex}.block-choices legend{font-weight:var(--weight-bold);margin-bottom:var(--space-2);font-size:14px}.chip input[type=radio],.chip input[type=checkbox]{opacity:0;pointer-events:none;position:absolute}.chip{position:relative}.chip:has(input:focus-visible){outline:var(--focus-width) solid var(--accent)}.chip-on{border-color:var(--accent);background:var(--accent-soft)}.chip-row{gap:var(--space-2);flex-wrap:wrap;display:flex}.size-icon{border:2px solid;border-radius:3px;display:inline-block}.size-s{width:10px;height:10px}.size-m{width:20px;height:10px}.size-t{width:10px;height:20px}.size-l{width:20px;height:20px}.tone-dot{border:1px solid var(--line);border-radius:50%;flex:none;width:16px;height:16px;padding:0}.tone-dot.tone-clear{background:repeating-linear-gradient(45deg, var(--line) 0 3px, transparent 3px 6px)}.sticker-grid{gap:var(--space-1);grid-template-columns:repeat(8,minmax(0,1fr));display:grid}.sticker-grid .chip{justify-content:center;padding:0;font-size:22px}.block-remove{margin-top:var(--space-6);padding-top:var(--space-3);border-top:1px solid var(--line);gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.file-name{padding:var(--space-2);font-size:11px;overflow:hidden}.library ul{gap:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.library-item{align-items:flex-start;gap:var(--space-1);width:100%;height:100%;padding:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-field);background:var(--surface);color:var(--ink);text-align:left;cursor:pointer;font:inherit;flex-direction:column;display:flex}.library-item:before{font-size:24px}.library-item span{color:var(--ink-muted);font-size:12px}.color-row{gap:var(--space-4);flex-wrap:wrap;align-items:center;display:flex}.color-row label{align-items:center;gap:var(--space-2);font-size:14px;display:flex}.auth-form .color-row input[type=color],.color-row input[type=color]{border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:50%;flex:none;width:48px;height:48px;min-height:48px;padding:0}.gradient-grid{gap:var(--space-2);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.gradient-swatch{aspect-ratio:1;border-radius:var(--radius-field);cursor:pointer;color:var(--ink);background:var(--surface);border:2px solid #0000;place-items:center;font-size:12px;display:grid}.gradient-swatch.on{border-color:var(--accent);box-shadow:0 0 0 2px var(--bg) inset}.gradient-swatch.none,.gradient-swatch.photo{border-color:var(--line)}.gradient-swatch.none.on,.gradient-swatch.photo.on{border-color:var(--accent)}.template-list{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.template-card{gap:var(--space-1);width:100%;padding:var(--space-4);border:1px solid var(--line);border-radius:var(--radius-card);text-align:left;cursor:pointer;font:inherit;flex-direction:column;min-height:88px;display:flex}.template-card strong{font-family:var(--font-heading);font-size:20px}.template-card span{font-size:13px}.welcome{z-index:60;justify-content:center;align-items:center;gap:var(--space-4);padding:calc(var(--space-6) + env(safe-area-inset-top)) var(--space-4) var(--space-8);background:var(--bg);color:var(--ink);flex-direction:column;display:flex;position:fixed;inset:0;overflow-y:auto}.welcome .surprise-top{top:calc(var(--space-3) + env(safe-area-inset-top));left:var(--space-4);right:var(--space-4);width:auto;position:absolute}.welcome-tone-night{color:#f2edff;background:radial-gradient(circle at 50% 20%,#2f3563,#0f1230 70%)}.welcome-tone-warm{color:#2a1f2b;background:radial-gradient(circle at 50% 30%,#fff1e6,#f6ddd6 60%,#e9b8a8)}.welcome-tone-soft{background:linear-gradient(180deg, var(--bg), var(--accent-soft))}.welcome-card{gap:var(--space-3);width:min(520px,100%);padding:var(--space-6);border-radius:var(--radius-card);color:#2a1f2b;text-align:center;background:#ffffffd1;flex-direction:column;animation:.8s ease-out both rise;display:flex;position:relative;box-shadow:0 20px 60px #00000026}.welcome-card .eyebrow{color:#b4433c}.welcome-card h1{margin:0;font-size:clamp(28px,8vw,40px)}.welcome-photo{object-fit:cover;border-radius:var(--radius-field);width:100%;max-height:320px}.welcome-message{white-space:pre-wrap;font-size:18px;line-height:1.55}.welcome-signature{margin:0;font-family:Caveat Variable,cursive;font-size:28px}.envelope{aspect-ratio:3/2;cursor:pointer;width:min(320px,86vw);font:inherit;background:linear-gradient(160deg,#f6ddd6,#e9b8a8);border:0;border-radius:12px;place-items:center;animation:3s ease-in-out infinite float;display:grid;position:relative;overflow:hidden;box-shadow:0 20px 50px #00000040}.envelope-flap{clip-path:polygon(0 0,100% 0,50% 100%);background:#e2a594;position:absolute;inset:0 0 45%}.envelope-seal{color:#fff;background:#b4433c;border-radius:50%;place-items:center;width:56px;height:56px;margin-top:-10%;font-size:26px;display:grid;position:relative}.envelope-label{color:#2a1f2b;text-align:center;font-size:14px;position:absolute;bottom:12px;left:12px;right:12px}@keyframes float{50%{transform:translateY(-8px)}}.welcome-float{pointer-events:none;position:fixed;inset:0;overflow:hidden}.welcome-float span{color:#e0455a;font-size:28px;animation:5s linear infinite rise-up;position:absolute;bottom:-40px}@keyframes rise-up{to{opacity:0;transform:translateY(-110vh)rotate(25deg)}}.welcome-stars{pointer-events:none;background-image:radial-gradient(1.5px 1.5px at 12% 18%,#fff 50%,#0000),radial-gradient(1px 1px at 28% 62%,#fff 50%,#0000),radial-gradient(2px 2px at 55% 12%,#fff 50%,#0000),radial-gradient(1px 1px at 76% 38%,#fff 50%,#0000),radial-gradient(1.5px 1.5px at 88% 76%,#fff 50%,#0000),radial-gradient(1px 1px at 40% 88%,#fff 50%,#0000),radial-gradient(2px 2px at 66% 58%,#fff 50%,#0000);animation:3s ease-in-out infinite alternate twinkle;position:fixed;inset:0}@keyframes twinkle{0%{opacity:.4}to{opacity:1}}.welcome-curtain{z-index:70;pointer-events:none;display:flex;position:fixed;inset:0}.welcome-curtain span{background:linear-gradient(90deg,#7c2e29,#b4433c);flex:1;transition:transform 1.2s ease-in-out}.welcome-curtain span+span{background:linear-gradient(270deg,#7c2e29,#b4433c)}.welcome-curtain.is-open span:first-child,.is-open .welcome-curtain span:first-child{transform:translate(-100%)}.is-open .welcome-curtain span+span{transform:translate(100%)}.date-list{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.date-card{gap:var(--space-1);padding:var(--space-4);border-radius:var(--radius-card);background:var(--surface);border:1px solid var(--line);border-left:6px solid var(--accent-soft);flex-direction:column;display:flex}.date-card.accepted{border-left-color:#3d8b5a}.date-card.declined{opacity:.7}.date-card strong{font-family:var(--font-heading);font-size:20px}.date-when{text-transform:capitalize;color:var(--accent);font-size:13px;font-weight:var(--weight-bold);margin:0}.date-status{margin:var(--space-1) 0 0;font-size:14px}.date-actions{gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.date-actions input{flex:100%}.date-actions .button{min-height:var(--touch)}.date-list.past .date-card{opacity:.75}.check-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.check-list li{align-items:center;gap:var(--space-2);display:flex}.check-list .world-check{background:var(--surface);flex:1}.check-list li.done .world-check span{opacity:.65;text-decoration:line-through}.question-card{padding:var(--space-6);border-radius:var(--radius-card);background:var(--accent);color:var(--button-ink)}.question-card .eyebrow{color:inherit;opacity:.85}.question-card h2{margin:0;font-size:clamp(22px,6vw,30px)}.night-card.plain{background:var(--surface);border-color:var(--line)}.night-card.plain h3{margin-top:0;font-size:16px}.question-hidden{filter:blur(.5px);color:var(--ink-muted)}.mood-pair{gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.mood-pair>div{align-items:center;gap:var(--space-1);padding:var(--space-4);border-radius:var(--radius-card);background:var(--surface);border:1px solid var(--line);text-align:center;flex-direction:column;display:flex}.mood-big{font-size:56px;line-height:1.1}.mood-grid{gap:var(--space-2);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.mood-option{padding:var(--space-2) var(--space-1);border-radius:var(--radius-field);border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;flex-direction:column;align-items:center;gap:2px;font-size:11px;display:flex}.mood-option span{font-size:30px}.mood-option.on{border-color:var(--accent);background:var(--accent-soft)}.mood-week{border-collapse:collapse;text-align:center;width:100%;font-size:13px}.mood-week th,.mood-week td{padding:var(--space-1)}.mood-week td{font-size:22px}.mood-week th[scope=row]{text-align:left;font-weight:var(--weight-bold)}.welcome-thumb{gap:var(--space-3);align-items:center;display:flex}.welcome-thumb img{object-fit:cover;border-radius:var(--radius-field);width:96px;height:96px}@media (prefers-reduced-motion:reduce){.editing .block,.envelope{animation:none}}[data-icon=gallery]:before{content:"✨"}[data-icon=lettre]:before{content:"💌"}.space-tabs a{max-width:120px}.tag-row{scrollbar-width:none;flex-wrap:nowrap;padding-bottom:2px;overflow-x:auto}.tag-row .chip{flex:none}.tpl-preview{border-radius:var(--radius-field);border:1px solid var(--line);aspect-ratio:3/4;pointer-events:none;padding:8px;overflow:hidden}.tpl-preview.large{aspect-ratio:auto;border-radius:var(--radius-card);padding:12px}.tpl-grid{grid-template-columns:1fr 1fr;grid-auto-rows:22px;grid-auto-flow:dense;gap:4px;margin:0;padding:0;list-style:none;display:grid}.large .tpl-grid{grid-auto-rows:54px;gap:8px}.tpl-cell{background:var(--surface);color:var(--ink);border-radius:6px;flex-direction:column;justify-content:center;min-width:0;padding:2px 6px;font-size:11px;display:flex;overflow:hidden}.large .tpl-cell{font-size:13px;font-weight:var(--weight-bold);border-radius:12px;padding:6px 10px}.tpl-cell:before{font-size:11px}.large .tpl-cell:before{font-size:18px}.tpl-cell.grid-t,.tpl-cell.grid-l{grid-row:span 2}.tpl-cell.tone-accent{background:var(--accent);color:#fff}.tpl-cell.tone-night{color:#f2edff;background:#1b1f3b}.tpl-cell.tone-soft{background:var(--accent-soft)}.tpl-cell.tone-clear{border:1px dashed color-mix(in srgb, var(--ink) 25%, transparent);background:0 0}.tpl-cell span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gallery-grid,.start-templates,.letter-list{margin:0;padding:0;list-style:none}.gallery-grid{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.gallery-card{gap:var(--space-1);padding:var(--space-2);border-radius:var(--radius-card);background:var(--surface);border:1px solid var(--line);flex-direction:column;height:100%;text-decoration:none;display:flex}.gallery-card strong{font-family:var(--font-heading);margin-top:var(--space-1);font-size:17px}.button.liked{border-color:var(--accent);color:var(--accent)}.start-templates{gap:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.start-template{gap:var(--space-1);padding:var(--space-2);border-radius:var(--radius-field);border:2px solid var(--line);cursor:pointer;background:var(--surface);flex-direction:column;height:100%;display:flex}.start-template.on{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.start-template:has(input:focus-visible){outline:var(--focus-width) solid var(--accent)}.start-template.custom{justify-content:center;min-height:120px}.letter-list{gap:var(--space-2);flex-direction:column;display:flex}.letter{gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-card);background:var(--surface);border:1px solid var(--line);text-align:left;width:100%;color:var(--ink);font:inherit;align-items:center;display:flex}button.letter{cursor:pointer}.letter div{flex-direction:column;gap:2px;min-width:0;display:flex}.letter strong{font-family:var(--font-heading);font-size:18px}.letter.sealed{color:#2a1f2b;background:linear-gradient(135deg,#fff5ef,#f6ddd6);border-color:#0000}.letter.fresh{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.letter-seal{color:#fff;background:#b4433c;border-radius:50%;flex:none;place-items:center;width:44px;height:44px;display:grid}.letter-seal:before{content:"♥";font-size:20px}.letter-seal.open{background:var(--accent-soft);color:var(--accent)}.letter-seal.open:before{content:"✉"}.letter-countdown{font-weight:var(--weight-bold);color:#b4433c;font-size:14px}.letter-actions{gap:var(--space-2);display:flex}.letter-actions .auth-text-button{min-height:32px;padding:0;font-size:13px}.letter-reader{z-index:90}.letter-paper{text-align:left;background:#fffaf3}.letter-paper .welcome-message{font-family:Caveat Variable,cursive;font-size:24px;line-height:1.35}
