:root{--bg: #f7f5f0;--bg-alt: #ede9e0;--ink: #1d1c19;--ink-soft: #635f55;--ink-faint: #948e80;--accent: #35594a;--accent-couple: #c0392b;--accent-animal: #2980b9;--accent-annee: #8e44ad;--accent-custom: #b8722b;--accent-soft: #b7c9bd;--gold: #b08a2e;--line: rgba(29, 28, 25, .13);--line-strong: rgba(29, 28, 25, .28);--overlay-bg: rgba(247, 245, 240, .92);--overlay-shadow: rgba(29, 28, 25, .2);--danger: #c0392b;--serif: "Cormorant Garamond", "Fraunces", Georgia, serif;--mono: "Space Mono", "Courier New", monospace;--utility: "Spectral", Georgia, serif;--sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--glass-fill: rgba(29, 28, 25, .045);--glass-fill-2: rgba(29, 28, 25, .08);--glass-border: rgba(176, 138, 46, .28);--glass-shadow: rgba(29, 28, 25, .12);--glass-blur: 18px;--orb-a: rgba(53, 89, 74, .3);--orb-b: rgba(176, 138, 46, .2);--orb-c: rgba(53, 89, 74, .16);--section-tint: rgba(237, 233, 224, .5);--action-fond: linear-gradient(135deg, var(--gold), var(--accent) 130%);--action-texte: #fff;--action-ombre: rgba(176, 138, 46, .28);--action-ombre-forte: rgba(176, 138, 46, .4);--nav-h: 72px;--nav-pad: 72px;--date-h: 36px;--radius-lg: 1.4rem;--radius-md: 1rem;--radius-sm: .6rem}:root[data-theme=dark]{--bg: #15140f;--bg-alt: #1d1b15;--ink: #eeeae0;--ink-soft: #b6b0a1;--ink-faint: #7c7768;--accent: #6fae8a;--accent-couple: #e74c3c;--accent-animal: #5dade2;--accent-annee: #bb8fce;--accent-custom: #e0a458;--accent-soft: #29392f;--gold: #d8ae5c;--line: rgba(238, 234, 224, .12);--line-strong: rgba(238, 234, 224, .26);--overlay-bg: rgba(21, 20, 15, .92);--overlay-shadow: rgba(0, 0, 0, .5);--danger: #e74c3c;--glass-fill: rgba(238, 234, 224, .055);--glass-fill-2: rgba(238, 234, 224, .095);--glass-border: rgba(216, 174, 92, .28);--glass-shadow: rgba(0, 0, 0, .35);--orb-a: rgba(111, 174, 138, .3);--orb-b: rgba(216, 174, 92, .2);--orb-c: rgba(41, 57, 47, .55);--section-tint: rgba(29, 27, 21, .45)}:root[data-skin="1"]{--glass-blur: 0px;--glass-fill: var(--bg-alt);--glass-fill-2: var(--bg-alt);--glass-border: var(--line);--glass-shadow: transparent;--section-tint: var(--bg-alt);--action-fond: linear-gradient(var(--accent), var(--accent));--action-texte: var(--bg);--action-ombre: transparent;--action-ombre-forte: transparent}:root[data-skin="1"] .liquid-bg .orb{display:none}:root[data-skin="1"] .clock-bg{opacity:0;pointer-events:none}:root[data-skin="1"] .glass,:root[data-skin="1"] .glass-strong,:root[data-skin="1"] .dashboard,:root[data-skin="1"] .cumul,:root[data-skin="1"] .config-card,:root[data-skin="1"] .fete-card,:root[data-skin="1"] .custom-card,:root[data-skin="1"] .audio-menu-container,:root[data-skin="1"] .today-date-live,:root[data-skin="1"] .beta-badge,:root[data-skin="1"] .icon-btn,:root[data-skin="1"] .btn-skip,:root[data-skin="1"] .btn-add,:root[data-skin="1"] .btn-inline,:root[data-skin="1"] .app-modal,:root[data-skin="1"] #navbar{backdrop-filter:none;-webkit-backdrop-filter:none}:root[data-skin="1"] .glass,:root[data-skin="1"] .glass-strong,:root[data-skin="1"] .cumul,:root[data-skin="1"] .config-card,:root[data-skin="1"] .fete-card,:root[data-skin="1"] .custom-card,:root[data-skin="1"] .audio-menu-container,:root[data-skin="1"] #navbar.scrolled{box-shadow:none}:root[data-skin="1"] .shine:before{display:none}:root[data-skin="1"] .dashboard{background:transparent;border-left:none;border-right:none;border-radius:0;box-shadow:none}:root[data-skin="1"] .unit:hover{background:transparent}:root[data-skin="1"] .unit:first-child{border-left:1px solid var(--glass-border)}:root[data-skin="1"] .unit:last-child{border-right:1px solid var(--glass-border)}:root[data-skin="1"] #section-animaux{background:var(--bg)}:root[data-skin="1"] .dashboard-section{border-bottom:1px solid var(--line)}:root[data-skin="1"] #navbar{background:var(--overlay-bg)}:root[data-skin="2"] .liquid-bg .orb{display:block}:root[data-skin="2"] .clock-bg{opacity:0;pointer-events:none}:root[data-skin="3"]{--glass-blur: 0px;--glass-fill: color-mix(in srgb, var(--bg-alt) 72%, transparent);--glass-fill-2: color-mix(in srgb, var(--bg-alt) 88%, transparent);--action-fond: linear-gradient(135deg, var(--accent), var(--accent-animal) 130%);--action-texte: #fff;--action-ombre: color-mix(in srgb, var(--accent-animal) 30%, transparent);--action-ombre-forte: color-mix(in srgb, var(--accent-animal) 45%, transparent)}:root[data-skin="3"] .liquid-bg .orb{opacity:.14}:root[data-skin="3"] .liquid-bg .orb-3,:root[data-skin="3"] .liquid-bg .orb-4{display:none}:root[data-skin="3"] .glass,:root[data-skin="3"] .glass-strong,:root[data-skin="3"] .dashboard,:root[data-skin="3"] .cumul,:root[data-skin="3"] .config-card,:root[data-skin="3"] .fete-card,:root[data-skin="3"] .custom-card,:root[data-skin="3"] .audio-menu-container,:root[data-skin="3"] .today-date-live,:root[data-skin="3"] .beta-badge,:root[data-skin="3"] .icon-btn,:root[data-skin="3"] .btn-skip,:root[data-skin="3"] .btn-add,:root[data-skin="3"] .app-modal,:root[data-skin="3"] #navbar{backdrop-filter:none;-webkit-backdrop-filter:none}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:hidden;max-width:100%;overscroll-behavior-x:none;background:var(--bg)}body{background:transparent;color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden;max-width:100vw;overscroll-behavior-x:none;position:relative}body,.config-card,input,select,button,nav{transition:background-color .35s ease,color .35s ease,border-color .35s ease,padding .35s ease}*{scrollbar-width:thin;scrollbar-color:var(--gold) transparent}::selection{background:var(--gold);color:var(--bg)}body.modal-open{overflow:hidden}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.liquid-bg{position:fixed;inset:0;z-index:-2;overflow:hidden;background:var(--bg);transition:background-color .6s ease}.orb{position:absolute;border-radius:50%;filter:blur(70px);opacity:.6;will-change:transform;transition:opacity .8s ease}.orb-1{width:46vw;height:46vw;left:-10vw;top:-8vw;background:radial-gradient(circle at 30% 30%,var(--orb-a),transparent 72%);animation:float1 26s ease-in-out infinite}.orb-2{width:38vw;height:38vw;right:-8vw;top:8vh;background:radial-gradient(circle at 60% 40%,var(--orb-b),transparent 75%);animation:float2 32s ease-in-out infinite}.orb-3{width:50vw;height:50vw;left:20vw;bottom:-20vw;background:radial-gradient(circle at 50% 50%,var(--orb-c),transparent 70%);animation:float3 30s ease-in-out infinite}.orb-4{width:26vw;height:26vw;right:10vw;bottom:5vh;background:radial-gradient(circle,var(--orb-b),transparent 70%);opacity:.35;animation:float2 22s ease-in-out infinite reverse}@keyframes float1{0%,to{transform:translate(0) scale(1)}33%{transform:translate(4vw,6vh) scale(1.08)}66%{transform:translate(-3vw,3vh) scale(.96)}}@keyframes float2{0%,to{transform:translate(0) scale(1)}50%{transform:translate(-6vw,8vh) scale(1.12)}}@keyframes float3{0%,to{transform:translate(0) scale(1)}40%{transform:translate(5vw,-4vh) scale(1.05)}70%{transform:translate(-4vw,-2vh) scale(.94)}}@media(prefers-reduced-motion:reduce){.orb{animation:none!important}}.clock-bg{position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:0;transition:opacity 1s ease}.clock-bg.is-ready{opacity:1}.clock-bg:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 72% 62% at 50% 45%,color-mix(in srgb,var(--bg) 52%,transparent) 0%,color-mix(in srgb,var(--bg) 30%,transparent) 44%,transparent 78%);pointer-events:none}.theme-fade{position:fixed;inset:0;z-index:4000;background:var(--bg);opacity:0;pointer-events:none;transition:opacity .32s ease}.theme-fade.is-visible{opacity:1}.glass{background:var(--glass-fill);backdrop-filter:blur(var(--glass-blur)) saturate(140%);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(140%);border:1px solid var(--glass-border);box-shadow:0 8px 32px var(--glass-shadow),inset 0 1px #ffffff0d}.glass-strong{background:var(--glass-fill-2);backdrop-filter:blur(calc(var(--glass-blur) + 6px)) saturate(150%);-webkit-backdrop-filter:blur(calc(var(--glass-blur) + 6px)) saturate(150%);border:1px solid var(--glass-border);box-shadow:0 8px 32px var(--glass-shadow)}.shine{position:relative;overflow:hidden}.shine:before{content:"";position:absolute;top:0;left:-120%;width:60%;height:100%;background:linear-gradient(115deg,transparent,rgba(176,138,46,.35),transparent);transform:skew(-20deg);transition:left .8s ease;pointer-events:none}.shine:hover:before{left:130%}.reveal{opacity:0;transform:translateY(26px) scale(.98);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}.reveal.is-visible{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}.btn-continuer,.btn-skip,.btn-supprimer,.btn-add{font-family:var(--mono);font-size:.82rem;letter-spacing:.1em;text-transform:uppercase;padding:1.05rem 2.8rem;border-radius:2rem;cursor:pointer;border:none;-webkit-tap-highlight-color:transparent;transition:transform .15s ease,opacity .2s ease,background-color .35s ease,box-shadow .3s ease;width:100%;margin-top:.5rem}.btn-continuer{background:var(--action-fond);color:var(--action-texte);box-shadow:0 8px 24px var(--action-ombre)}.btn-skip{background:var(--glass-fill);color:var(--ink);border:1px solid var(--glass-border);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.btn-supprimer{background:var(--danger);color:#fff}.btn-add{background:var(--glass-fill);color:var(--ink);border:1px dashed var(--glass-border);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.btn-continuer:hover{box-shadow:0 12px 34px var(--action-ombre-forte)}.btn-continuer:hover,.btn-skip:hover,.btn-supprimer:hover,.btn-add:hover{transform:translateY(-2px)}.btn-continuer:active,.btn-skip:active,.btn-supprimer:active,.btn-add:active{transform:scale(.96)}.btn-skip:disabled{opacity:0;pointer-events:none}.switch-row{margin:.9rem 0}.switch{display:flex;align-items:center;gap:.7rem;cursor:pointer;-webkit-tap-highlight-color:transparent}.switch input{position:absolute;opacity:0;width:0;height:0}.switch-track{position:relative;flex:none;width:44px;height:24px;border-radius:999px;background:var(--line-strong);transition:background-color .25s ease}.switch-thumb{position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:var(--bg);box-shadow:0 1px 4px #0000004d;transition:transform .25s cubic-bezier(.2,.8,.2,1)}.switch input:checked+.switch-track{background:var(--action-fond)}.switch input:checked+.switch-track .switch-thumb{transform:translate(20px)}.switch input:focus-visible+.switch-track{outline:2px solid var(--gold);outline-offset:2px}.switch-label{font-family:var(--sans);font-size:.88rem;color:var(--ink)}.switch-note{margin-top:.35rem;margin-left:3.4rem}.app-toast{position:fixed;left:50%;bottom:calc(1.4rem + env(safe-area-inset-bottom,0px));transform:translate(-50%) translateY(14px);background:var(--overlay-bg);color:var(--ink);border:1px solid var(--glass-border);border-radius:999px;padding:.65rem 1.3rem;font-family:var(--sans);font-size:.82rem;box-shadow:0 10px 30px var(--overlay-shadow);z-index:5000;opacity:0;pointer-events:none;transition:opacity .35s ease,transform .35s ease;max-width:86vw;text-align:center}.app-toast.is-visible{opacity:1;transform:translate(-50%) translateY(0)}html.perf-mode *{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}html.perf-mode .orb{animation:none!important}html.perf-mode .orb-3,html.perf-mode .orb-4{display:none!important}html.perf-mode .orb-1,html.perf-mode .orb-2{filter:blur(30px);opacity:.4}html.perf-mode .shine:before{display:none!important}html.perf-mode .reveal{transition-duration:.01s!important}html.perf-mode .icon-btn:hover,html.perf-mode .btn-continuer:hover,html.perf-mode .btn-skip:hover,html.perf-mode .btn-supprimer:hover,html.perf-mode .btn-add:hover{transform:none!important}#feux-canvas{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:3900;display:none}.fete-message{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:6vw;text-align:center;pointer-events:none;z-index:3950;opacity:0}.fete-message span{font-family:var(--serif);font-weight:600;font-size:clamp(1.5rem,6vw,4rem);color:var(--ink);background:var(--overlay-bg);padding:.4em .8em;border-radius:.4em;box-shadow:0 1.6rem 4rem var(--overlay-shadow);display:inline-block}.fete-message.entree{animation:fete-apparition .8s cubic-bezier(.2,.8,.2,1) forwards}.fete-message.sortie{animation:fete-disparition .7s ease-in forwards}@keyframes fete-apparition{0%{opacity:0;transform:scale(.75) translateY(18px);filter:blur(6px)}60%{opacity:1;transform:scale(1.04) translateY(0);filter:blur(0)}to{opacity:1;transform:scale(1) translateY(0);filter:blur(0)}}@keyframes fete-disparition{0%{opacity:1;transform:scale(1) translateY(0);filter:blur(0)}to{opacity:0;transform:scale(1.12) translateY(-14px);filter:blur(8px)}}.empty-state{text-align:center;font-family:var(--sans);color:var(--ink-faint);font-style:italic;padding:2rem}.field-error{display:none;margin-top:.35rem;font-family:var(--sans);font-size:.78rem;font-style:normal;color:var(--danger)}.field-error.visible{display:block}.field-hint{font-family:var(--sans);font-size:.74rem;color:var(--ink-faint);margin-top:.4rem;line-height:1.45}#navbar{position:fixed;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;gap:.6rem;padding:calc(1.5rem + env(safe-area-inset-top,0px)) 2rem 1.5rem;background:var(--glass-fill-2);backdrop-filter:blur(var(--glass-blur)) saturate(140%);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(140%);z-index:1200;border-bottom:1px solid transparent;opacity:0;pointer-events:none;transition:padding .3s ease,border-color .3s ease,opacity .3s ease,background-color .35s ease}#navbar.visible{opacity:1;pointer-events:auto}#navbar.scrolled{padding:calc(.6rem + env(safe-area-inset-top,0px)) 2rem .6rem;border-bottom:1px solid var(--glass-border);box-shadow:0 8px 24px var(--glass-shadow)}.nav-links{position:absolute;left:50%;transform:translate(-50%);display:flex;gap:1.5rem;justify-content:center;align-items:center}.nav-link{font-family:var(--sans);font-weight:500;font-size:.9rem;color:var(--ink-soft);text-decoration:none;transition:color .2s ease;white-space:nowrap}.nav-link:hover{color:var(--ink)}.nav-link.disabled{opacity:.4;pointer-events:none;cursor:default}.nav-actions,.nav-actions-left{display:flex;align-items:center;gap:.6rem;position:relative;z-index:10}.icon-btn{width:2.2rem;height:2.2rem;border-radius:50%;border:1px solid var(--glass-border);background:var(--glass-fill);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;cursor:pointer;font-family:var(--sans);font-weight:600;font-size:.8rem;color:var(--ink);-webkit-tap-highlight-color:transparent;pointer-events:auto;flex:none;transition:border-color .25s ease,transform .2s ease,color .25s ease}.icon-btn:hover{border-color:var(--gold);transform:translateY(-1px)}.icon-btn:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.icon-btn svg{width:14px;height:14px}.icon-btn.is-active{border-color:var(--gold);color:var(--gold)}.today-date-live{position:sticky;top:var(--nav-h);z-index:110;text-align:center;padding:.5rem 1rem;margin:0;background:none;border:none;pointer-events:none;transition:top .3s ease}.today-date-pill{display:inline-block;pointer-events:auto;font-family:var(--mono);font-size:.68rem;letter-spacing:.08em;color:var(--ink-faint);padding:.4rem 1.05rem;border-radius:999px;background:var(--overlay-bg);border:1px solid var(--glass-border);box-shadow:0 4px 16px var(--glass-shadow);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%)}.today-date-pill:empty{display:none}html.perf-mode .today-date-pill{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;background:var(--bg)}@media(prefers-reduced-motion:reduce){.today-date-live{transition:none}}@media(max-width:900px){#navbar{padding:calc(1.2rem + env(safe-area-inset-top,0px)) 1rem 1.2rem;flex-wrap:wrap}#navbar.scrolled{padding:calc(.6rem + env(safe-area-inset-top,0px)) 1rem .6rem}.nav-links{position:static;transform:none;width:100%;order:3;margin-top:.9rem;gap:1rem;flex-wrap:wrap}}@media(max-width:600px){.nav-links{gap:.7rem}.nav-link{font-size:.74rem}.icon-btn{width:1.9rem;height:1.9rem;font-size:.7rem}.nav-actions,.nav-actions-left{gap:.4rem}}.splash{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:6vh 6vw;gap:.9rem}.splash-logo{width:clamp(72px,12vw,104px);height:clamp(72px,12vw,104px);border-radius:50%;margin-bottom:.6rem;padding:.5rem;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 34px var(--glass-shadow),0 0 0 1px var(--glass-border) inset;position:relative}.splash-logo:after{content:"";position:absolute;inset:-14%;border-radius:50%;z-index:-1;background:radial-gradient(circle,var(--orb-b),transparent 70%);opacity:.7;filter:blur(14px)}.splash-logo-img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block;box-shadow:0 0 0 1px var(--glass-border)}.splash-title{font-family:var(--serif);font-weight:600;font-size:clamp(2.6rem,11vw,5.4rem);letter-spacing:-.01em;line-height:1;color:var(--accent);max-width:16ch}.splash-subtitle{font-family:var(--sans);font-weight:500;font-size:clamp(1rem,2.6vw,1.25rem);color:var(--accent);opacity:.75;margin-top:-.2rem}.splash-sub{font-family:var(--sans);font-size:.92rem;color:var(--ink-soft);max-width:36ch;margin:.4rem 0 1rem}.splash .btn-continuer{max-width:340px}.config{min-height:100svh;display:flex;align-items:center;justify-content:center;padding:6vh 6vw}.config-step{display:none;width:100%;max-width:520px}.config-step.active{display:block;animation:fadeIn .4s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.config-card{background:var(--glass-fill);backdrop-filter:blur(20px) saturate(140%);-webkit-backdrop-filter:blur(20px) saturate(140%);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:0 12px 40px var(--glass-shadow);padding:2.4rem 2rem;display:flex;flex-direction:column;gap:1.1rem;text-align:left}.config-card h2{font-family:var(--serif);font-weight:500;font-size:clamp(1.35rem,4.2vw,1.7rem);line-height:1.2}.config-sub{font-family:var(--sans);font-size:.82rem;color:var(--ink-soft);margin-top:-.5rem}.config-card label{display:flex;flex-direction:column;gap:.4rem;font-family:var(--mono);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint)}.config-card input[type=text],.config-card select{font-family:var(--sans);font-size:.98rem;color:var(--ink);padding:.7rem .75rem;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--bg);width:100%}.config-card input[type=text]:focus,.config-card select:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 2px #b08a2e38}.config-row{display:grid;grid-template-columns:repeat(5,1fr);gap:.5rem}.config-row-animal{display:grid;grid-template-columns:2fr 1fr;gap:.5rem;margin-bottom:.5rem}.config-erreur{display:none;color:var(--danger);font-family:var(--sans);font-size:.84rem;font-weight:600;text-align:center}.config-erreur.visible{display:block}.person-block{border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:1.1rem;margin-bottom:.9rem;background:var(--glass-fill)}.person-block-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.7rem}.person-block-header .person-label{font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint)}.btn-supprimer-person,.btn-supprimer-animal{background:transparent;border:1px solid rgba(231,76,60,.4);color:var(--danger);padding:.3rem .7rem;border-radius:1rem;cursor:pointer;font-family:var(--mono);font-size:.6rem;letter-spacing:.05em;text-transform:uppercase;transition:background .2s ease,color .2s ease}.btn-supprimer-person:hover,.btn-supprimer-animal:hover{background:var(--danger);color:#fff}.person-required-badge{font-size:.6rem;letter-spacing:.06em;text-transform:uppercase;color:var(--gold);border:1px solid var(--gold);border-radius:1rem;padding:.15rem .5rem}.couple-block,.animal-block{border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:1.1rem;margin-bottom:.9rem;background:var(--glass-fill)}.animal-header,.couple-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.7rem}.animal-header .person-label,.couple-header .person-label{font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint)}.btn-supprimer-couple{background:transparent;border:1px solid rgba(231,76,60,.4);color:var(--danger);padding:.3rem .7rem;border-radius:1rem;cursor:pointer;font-family:var(--mono);font-size:.6rem;letter-spacing:.05em;text-transform:uppercase;transition:background .2s ease,color .2s ease}.btn-supprimer-couple:hover{background:var(--danger);color:#fff}.drag-grip{display:inline-flex;align-items:center;color:var(--ink-faint);opacity:.55;margin-right:.45rem;cursor:grab;-webkit-touch-callout:none;user-select:none;-webkit-user-select:none}.drag-grip svg{width:13px;height:13px;display:block}.person-block-header,.couple-header,.animal-header{touch-action:manipulation}.person-block,.couple-block,.animal-block{transition:transform .22s cubic-bezier(.2,.7,.2,1),box-shadow .2s ease}.reorg-actif>.person-block,.reorg-actif>.couple-block,.reorg-actif>.animal-block{will-change:transform}@keyframes reorg-tremble{0%{transform:rotate(-.5deg) translateY(0)}25%{transform:rotate(.45deg) translateY(-.6px)}50%{transform:rotate(-.4deg) translateY(0)}75%{transform:rotate(.5deg) translateY(.6px)}to{transform:rotate(-.5deg) translateY(0)}}.reorg-actif>.person-block,.reorg-actif>.couple-block,.reorg-actif>.animal-block{animation:reorg-tremble .42s ease-in-out infinite;animation-delay:var(--reorg-retard, 0s);cursor:grab}.reorg-en-cours>.person-block,.reorg-en-cours>.couple-block,.reorg-en-cours>.animal-block{animation:none}.reorg-traine{animation:none!important;transition:none!important;position:relative;z-index:30;cursor:grabbing;box-shadow:0 18px 44px var(--glass-shadow),0 0 0 1px var(--gold) inset;opacity:.97}.reorg-en-cours{touch-action:none}body.reorg-body{user-select:none;-webkit-user-select:none;cursor:grabbing}.reorg-aide{display:none;align-items:center;justify-content:space-between;gap:.6rem;margin:-.2rem 0 .7rem;padding:.5rem .75rem;border:1px dashed var(--gold);border-radius:var(--radius-sm);background:var(--glass-fill);font-family:var(--sans);font-size:.76rem;color:var(--ink-soft)}.reorg-aide.visible{display:flex}.reorg-aide button{flex:0 0 auto;background:var(--gold);border:none;color:#1a1408;padding:.32rem .8rem;border-radius:1rem;cursor:pointer;font-family:var(--mono);font-size:.62rem;letter-spacing:.06em;text-transform:uppercase}@media(prefers-reduced-motion:reduce){.reorg-actif>.person-block,.reorg-actif>.couple-block,.reorg-actif>.animal-block{animation:none;box-shadow:0 0 0 1px var(--gold) inset}.person-block,.couple-block,.animal-block{transition:none}}@media(max-width:520px){.config-row{grid-template-columns:repeat(3,1fr)}.config-card{padding:2rem 1.4rem}}.app-container{padding-top:calc(var(--nav-pad) + 10px);min-height:100svh;display:flex;flex-direction:column}section{scroll-margin-top:calc(var(--nav-pad) + var(--date-h) + 8px)}.dashboard-section{padding:8vh 6vw;position:relative;border-bottom:1px solid var(--glass-border);overflow:visible}#section-couple{background:var(--section-tint)}#section-couple .ms .num{color:var(--accent-couple)}#section-couple .eyebrow:before{color:var(--accent-couple)}#section-couple .ring-fg{stroke:var(--accent-couple)}#section-animaux{background:transparent}#section-animaux .ms .num{color:var(--accent-animal)}#section-animaux .eyebrow:before{color:var(--accent-animal)}#section-animaux .ring-fg{stroke:var(--accent-animal)}#section-annee{background:var(--section-tint)}#section-annee .ms .num{color:var(--accent-annee)}#section-annee .eyebrow:before{color:var(--accent-annee)}#section-annee .ring-fg{stroke:var(--accent-annee)}#section-custom .eyebrow:before{color:var(--accent-custom)}.eyebrow{font-family:var(--mono);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:1.1rem;text-align:center}.eyebrow:before{content:"● ";color:var(--accent)}h1,.section-title{font-family:var(--serif);font-weight:500;font-size:clamp(1.9rem,5.4vw,3.4rem);line-height:1.08;letter-spacing:-.01em;text-align:center;margin:0 auto .4rem}.depart{font-family:var(--sans);font-size:.85rem;color:var(--ink-soft);margin-bottom:3.2rem;text-align:center}.depart b{color:var(--ink);font-weight:600}.health-msg{font-family:var(--sans);font-size:.85rem;color:var(--accent-animal);font-weight:600;margin-top:.5rem;text-align:center}.dashboard{display:flex;flex-wrap:wrap;justify-content:center;align-items:stretch;background:var(--glass-fill);backdrop-filter:blur(16px) saturate(130%);-webkit-backdrop-filter:blur(16px) saturate(130%);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:0 12px 36px var(--glass-shadow);max-width:1100px;width:100%;margin:0 auto;overflow:hidden}.unit{flex:1 1 90px;padding:1.4rem .6rem;border-left:1px solid var(--glass-border);display:flex;flex-direction:column;align-items:center;gap:.45rem;transition:background-color .3s ease}.unit:hover{background:var(--glass-fill-2)}.unit:first-child{border-left:none}.unit .num{font-family:var(--mono);font-weight:700;font-variant-numeric:tabular-nums;font-size:clamp(1.3rem,3.6vw,2.35rem);line-height:1;color:var(--ink)}.unit.ms .num{color:var(--accent)}.unit .lbl{font-family:var(--mono);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);text-align:center}.summary{margin-top:3rem;display:flex;flex-direction:column;align-items:center;gap:1rem}.ring-wrap{position:relative;width:88px;height:88px}.ring-wrap svg{width:100%;height:100%;transform:rotate(-90deg)}.ring-bg{fill:none;stroke:var(--line-strong);stroke-width:5}.ring-fg{fill:none;stroke:var(--gold);stroke-width:5;stroke-linecap:round;transition:stroke-dashoffset .25s linear,opacity .3s ease}.ring-pct{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;font-family:var(--mono);font-size:.68rem;color:var(--ink-soft);padding:0 4px;line-height:1.15}.ring-pct-lbl{font-size:.46rem;white-space:nowrap;color:var(--ink-soft)}.ring-pct-val{color:var(--ink);font-size:.95rem;margin-top:2px;line-height:1}.phrase{font-family:var(--serif);font-weight:500;font-size:clamp(1.05rem,2.6vw,1.4rem);color:var(--ink);max-width:32ch;text-align:center}.phrase .accentword{font-weight:600}.scrollcue{margin-top:2.6rem;font-family:var(--mono);font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);display:flex;flex-direction:column;align-items:center;gap:.4rem}.scrollcue .stick{width:1px;height:26px;background:linear-gradient(var(--ink-faint),transparent)}.cumul{max-width:640px;margin:2rem auto 0;background:var(--glass-fill);backdrop-filter:blur(14px) saturate(130%);-webkit-backdrop-filter:blur(14px) saturate(130%);border:1px solid var(--glass-border);border-radius:1.2rem;box-shadow:0 10px 30px var(--glass-shadow);overflow:hidden}.row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;row-gap:.35rem;padding:.95rem 1.2rem;border-bottom:1px solid var(--glass-border);gap:1rem;transition:background-color .25s ease}.row:hover{background:var(--glass-fill)}.row:last-of-type{border-bottom:none}.row .rlabel{font-family:var(--sans);font-size:.92rem;color:var(--ink-soft);white-space:nowrap;flex:0 1 auto;min-width:0}.rvalue-group{display:flex;align-items:center;gap:.55rem;min-width:0;flex:1 1 auto;justify-content:flex-end;max-width:100%}.row .rvalue{font-family:var(--mono);font-weight:700;font-variant-numeric:tabular-nums;font-size:clamp(1.05rem,2.6vw,1.55rem);color:var(--ink);text-align:right;white-space:normal;word-break:break-word;overflow-wrap:anywhere;min-width:0}.copy-btn{position:relative;flex:0 0 auto;width:clamp(1.7rem,4.2vw,2rem);height:clamp(1.7rem,4.2vw,2rem);border:1px solid var(--line-strong);border-radius:.5rem;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;-webkit-tap-highlight-color:transparent;transition:background .2s ease,border-color .2s ease,transform .15s ease}.copy-btn:hover{background:var(--line)}.copy-btn:active{transform:scale(.88)}.copy-btn svg{position:absolute;width:52%;height:52%;stroke:var(--ink-soft);fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transition:opacity .25s ease,transform .25s ease}.copy-btn .icon-copie{opacity:1;transform:scale(1) rotate(0)}.copy-btn .icon-coche{opacity:0;transform:scale(.4) rotate(-25deg);stroke:var(--accent)}.copy-btn.copie{border-color:var(--accent);background:#3d5c4d14}.copy-btn.copie .icon-copie{opacity:0;transform:scale(.4) rotate(25deg)}.copy-btn.copie .icon-coche{opacity:1;transform:scale(1) rotate(0);animation:coche-pop .4s cubic-bezier(.34,1.6,.64,1)}@keyframes coche-pop{0%{transform:scale(.3) rotate(-25deg)}60%{transform:scale(1.25) rotate(6deg)}to{transform:scale(1) rotate(0)}}.annee-cols{display:flex;flex-wrap:wrap;justify-content:center;gap:2.4rem;max-width:1000px;margin:0 auto}.annee-col{flex:1 1 320px;min-width:0}.annee-col-title{font-family:var(--mono);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);text-align:center;margin-bottom:1rem}.annee-countdown-wrap{max-width:640px;margin:3rem auto 0}.annee-col .row .rlabel{flex:1 1 100%}.annee-col .row .rvalue-group{flex:1 1 100%;justify-content:flex-end}.fetes-wrap{max-width:1100px;margin:3.5rem auto 0}.fetes-title{font-family:var(--mono);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);text-align:center;margin-bottom:.35rem}.fetes-sub{font-family:var(--sans);font-size:.78rem;color:var(--ink-faint);text-align:center;margin-bottom:1.4rem}.fetes-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.9rem}.fete-card{display:flex;flex-direction:column;gap:.5rem;padding:.9rem .8rem;border-radius:var(--radius-md);border:1px solid var(--glass-border);background:var(--glass-fill);backdrop-filter:blur(12px) saturate(130%);-webkit-backdrop-filter:blur(12px) saturate(130%);transition:border-color .3s ease,transform .3s ease,box-shadow .3s ease}.fete-card:hover{transform:translateY(-3px);border-color:var(--gold);box-shadow:0 10px 26px var(--glass-shadow)}.fete-card.is-today{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold),0 10px 30px var(--glass-shadow);background:var(--glass-fill-2)}.fete-head{display:flex;align-items:center;gap:.5rem}.fete-emoji{font-size:1.15rem;line-height:1}.fete-drapeau{display:block;height:1.05em;width:auto;border-radius:1.5px;box-shadow:0 0 0 .5px #00000040}.fete-nom{font-family:var(--sans);font-weight:600;font-size:.85rem;color:var(--ink);line-height:1.2}.fete-date{font-family:var(--mono);font-size:.62rem;letter-spacing:.04em;color:var(--ink-faint)}.fete-units{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.3rem;margin-top:.15rem}.fete-unit{display:flex;flex-direction:column;align-items:center;gap:.12rem;padding:.35rem .15rem;border-radius:.5rem;background:var(--glass-fill);min-width:0}.fete-num{font-family:var(--mono);font-weight:700;font-variant-numeric:tabular-nums;font-size:.95rem;line-height:1;color:var(--accent-annee)}.fete-lbl{font-family:var(--mono);font-size:.5rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);text-align:center;overflow-wrap:anywhere}.fete-badge{font-family:var(--sans);font-size:.72rem;font-weight:700;color:var(--gold);text-align:center}.saisons-wrap{margin-top:2.6rem}.saisons-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.saison-card{min-height:148px}.saison-message{font-family:var(--sans);font-weight:700;font-size:.95rem;color:var(--gold);text-align:center;margin:auto 0;padding:.5rem 0}.saison-card .fete-date{line-height:1.45}.saison-card{position:relative}.saison-particules{position:absolute;inset:-24px;width:calc(100% + 48px);height:calc(100% + 48px);pointer-events:none;z-index:2}.saison-card>*:not(.saison-particules){position:relative;z-index:3}@media(max-width:560px){.saison-card{min-height:0}.saison-message{padding:.9rem 0}}.lune-emoji{font-size:1.45rem;line-height:1}.lune-card{min-height:148px}.lune-card .fete-date{line-height:1.45}@media(max-width:560px){.lune-card{min-height:0}}.heure-wrap{margin-top:2.6rem}.heure-carte{max-width:560px;margin:0 auto;padding:1.5rem 1.4rem 1.2rem;border-radius:var(--radius-md);border:1px solid var(--glass-border);background:var(--glass-fill);backdrop-filter:blur(12px) saturate(130%);-webkit-backdrop-filter:blur(12px) saturate(130%);text-align:center;transition:border-color .3s ease,box-shadow .3s ease}#heure-bloc.is-today .heure-carte{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold),0 10px 30px var(--glass-shadow);background:var(--glass-fill-2)}.heure-titre{font-family:var(--serif);font-size:clamp(1.4rem,4.4vw,2rem);font-weight:500;line-height:1.15;color:var(--ink)}.heure-sous-titre{font-family:var(--mono);font-size:.7rem;letter-spacing:.06em;color:var(--ink-faint);margin-top:.35rem}.heure-units{grid-template-columns:repeat(4,minmax(0,1fr));max-width:420px;margin:1.1rem auto 0}.heure-units .fete-num{font-size:clamp(1.15rem,3.4vw,1.6rem)}.heure-gain{font-family:var(--sans);font-size:.82rem;color:var(--ink-soft);margin-top:.9rem}.heure-fuseau{font-family:var(--mono);font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);margin-top:.5rem;opacity:.75}.notif-card{max-width:560px;margin:1.5rem auto;padding:1.1rem 1.3rem;border-radius:var(--radius-md);border:1px solid var(--glass-border);background:var(--glass-fill);display:flex;flex-direction:column;align-items:center;gap:.7rem;text-align:center}.notif-text{font-family:var(--sans);font-size:.85rem;color:var(--ink-soft);line-height:1.5}.btn-notif-activate{font-family:var(--sans);font-size:.8rem;font-weight:600;padding:.55rem 1.2rem;border-radius:1.5rem;cursor:pointer;border:none;background:var(--action-fond);color:var(--action-texte);box-shadow:0 8px 24px var(--action-ombre);transition:transform .15s,box-shadow .2s}.btn-notif-activate:hover{transform:translateY(-2px);box-shadow:0 12px 34px var(--action-ombre-forte)}.btn-notif-activate:active{transform:scale(.96)}.notif-status{font-family:var(--mono);font-size:.7rem;letter-spacing:.05em;color:var(--ink-faint);line-height:1.5}footer.app-footer{text-align:center;padding:2.4rem 0 1rem;font-family:var(--mono);font-size:.65rem;letter-spacing:.08em;color:var(--ink-faint)}@media(max-width:560px){.unit{flex:1 1 30%;padding:1rem .3rem}.dashboard{border-left:none}.dashboard-section{padding:6vh 5vw}}@media(max-width:480px){.row .rlabel{flex:1 1 100%}.row .rvalue-group{flex:1 1 100%;justify-content:flex-end}.fetes-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.fete-num{font-size:.85rem}.fete-units{grid-template-columns:repeat(2,minmax(0,1fr))}}.profile-photo-wrap{position:relative;width:88px;height:88px;margin:0 auto .8rem;border-radius:50%;flex-shrink:0;overflow:visible}.profile-photo-wrap.lg{width:110px;height:110px}.profile-photo-wrap.sm{width:56px;height:56px;margin:0}.dash-profile-header,.photo-editor,.cc-head{overflow:visible}.dash-profile-header{display:flex;flex-direction:column;align-items:center;gap:.35rem;margin-bottom:.6rem;padding-top:2.2rem}.profile-photo-inner{width:100%;height:100%;border-radius:50%;overflow:hidden;background:var(--glass-fill-2);display:flex;align-items:center;justify-content:center;position:relative;z-index:2}.profile-photo-inner img{width:100%;height:100%;object-fit:cover;display:block}.profile-photo-placeholder{width:42%;height:42%;opacity:.35;stroke:var(--ink-soft);fill:none;stroke-width:1.6}.profile-photo-ring{position:absolute;inset:-4px;border-radius:50%;z-index:1;pointer-events:none}.profile-photo-fx{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:3;pointer-events:none}.pfx-none .profile-photo-ring,.pfx-canvas .profile-photo-ring{display:none}.pfx-rainbow .profile-photo-ring{background:conic-gradient(from var(--pfx-angle, 0deg),#ff6b6b,#feca57,#48dbfb,#ff9ff3,#54a0ff,#5f27cd,#ff6b6b);animation:pfx-spin 3s linear infinite;-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 3.5px),#000 calc(100% - 3px));mask:radial-gradient(farthest-side,transparent calc(100% - 3.5px),#000 calc(100% - 3px))}.pfx-goldpulse .profile-photo-ring{background:var(--gold);box-shadow:0 0 #b08a2e80;animation:pfx-pulse 2s ease-in-out infinite;-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 3.5px),#000 calc(100% - 3px));mask:radial-gradient(farthest-side,transparent calc(100% - 3.5px),#000 calc(100% - 3px))}.pfx-aurora .profile-photo-ring{background:conic-gradient(from var(--pfx-angle, 0deg),#00c9a7,#845ec2,#ff6f91,#ffc75f,#00c9a7);animation:pfx-spin 4s linear infinite;filter:blur(.5px);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 4px),#000 calc(100% - 3.5px));mask:radial-gradient(farthest-side,transparent calc(100% - 4px),#000 calc(100% - 3.5px))}.pfx-shimmer .profile-photo-ring{background:conic-gradient(from var(--pfx-angle, 0deg),rgba(176,138,46,.45) 0deg,var(--gold) 34deg,#fff3d0 52deg,var(--gold) 70deg,rgba(176,138,46,.45) 110deg,rgba(176,138,46,.45) 360deg);animation:pfx-spin 3.2s linear infinite;-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 3.5px),#000 calc(100% - 3px));mask:radial-gradient(farthest-side,transparent calc(100% - 3.5px),#000 calc(100% - 3px))}.pfx-neon .profile-photo-ring{border:2.5px solid var(--accent);box-shadow:0 0 8px var(--accent),0 0 18px var(--accent),inset 0 0 8px #6fae8a40;animation:pfx-neon 2.5s ease-in-out alternate infinite}@property --pfx-angle{syntax: "<angle>"; initial-value: 0deg; inherits: false;}@keyframes pfx-spin{to{--pfx-angle: 360deg;transform:rotate(360deg)}}@keyframes pfx-pulse{0%,to{box-shadow:0 0 #b08a2e73;opacity:1}50%{box-shadow:0 0 0 8px #b08a2e00;opacity:.85}}@keyframes pfx-neon{0%{box-shadow:0 0 6px var(--accent),0 0 12px var(--accent)}to{box-shadow:0 0 14px var(--accent),0 0 28px var(--accent)}}@media(prefers-reduced-motion:reduce){.profile-photo-ring{animation:none!important}}.photo-editor{display:flex;flex-direction:column;align-items:center;gap:.7rem;padding:1.6rem .9rem .9rem;border:1px dashed var(--glass-border);border-radius:var(--radius-md);background:var(--glass-fill);margin:.4rem 0}.photo-editor-actions{display:flex;flex-wrap:wrap;gap:.45rem;justify-content:center}.photo-editor-actions button{font-family:var(--sans);font-size:.72rem;font-weight:500;padding:.4rem .85rem;border-radius:1rem;cursor:pointer;border:1px solid var(--glass-border);background:var(--bg);color:var(--ink);transition:border-color .2s,transform .15s}.photo-editor-actions button:hover{border-color:var(--gold);transform:translateY(-1px)}.photo-editor-actions button.danger{color:var(--danger);border-color:#e74c3c66}.fx-label{font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint)}.border-fx-select{width:100%;max-width:260px;font-family:var(--sans);font-size:.8rem;padding:.45rem .6rem;border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--bg);color:var(--ink);cursor:pointer}@media(max-width:520px){.profile-photo-wrap.lg{width:92px;height:92px}}.audio-wrapper{position:relative;display:flex;align-items:center}.audio-menu-container{position:absolute;top:135%;right:0;transform:translateY(-10px);background:var(--glass-fill-2);backdrop-filter:blur(20px) saturate(150%);-webkit-backdrop-filter:blur(20px) saturate(150%);border:1px solid var(--glass-border);border-radius:.9rem;padding:1rem;box-shadow:0 10px 30px var(--glass-shadow);opacity:0;visibility:hidden;transition:opacity .25s cubic-bezier(.2,.8,.2,1),transform .25s cubic-bezier(.2,.8,.2,1),visibility .25s;z-index:1300;display:flex;flex-direction:column;gap:.7rem;width:232px}.audio-wrapper.is-open .audio-menu-container{opacity:1;visibility:visible;transform:translateY(0)}@media(hover:hover)and (pointer:fine){.audio-wrapper:hover .audio-menu-container,.audio-wrapper:focus-within .audio-menu-container{opacity:1;visibility:visible;transform:translateY(0)}}.audio-controls-row{display:flex;align-items:center;gap:.6rem}.audio-controls-row label{margin-right:auto;font-family:var(--sans);font-size:.75rem;color:var(--ink-soft)}.audio-field-label{font-family:var(--mono);font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint)}.audio-track-row{display:flex;gap:.4rem;align-items:stretch}#audio-track-select{flex:1 1 auto;min-width:0;padding:.4rem .5rem;font-size:.75rem;border-radius:.4rem;border:1px solid var(--line-strong);background:var(--bg);color:var(--ink);font-family:var(--sans);cursor:pointer}#btn-audio-random{flex:0 0 auto;width:2.1rem;border-radius:.4rem;border:1px solid var(--line-strong);background:var(--bg);color:var(--ink);cursor:pointer;font-size:.85rem;line-height:1;transition:border-color .2s ease,color .2s ease,background .2s ease}#btn-audio-random:hover{border-color:var(--gold)}#btn-audio-random.is-active{border-color:var(--gold);color:var(--gold);background:color-mix(in srgb,var(--gold) 12%,transparent)}#btn-import-audio{padding:.4rem .6rem;font-size:.75rem;border-radius:.4rem;border:1px solid var(--line-strong);background:var(--bg);color:var(--ink);cursor:pointer;font-family:var(--sans);font-weight:500;transition:background .2s ease,border-color .2s ease;text-align:center}#btn-import-audio:hover{background:var(--line);border-color:var(--gold)}#btn-import-audio:disabled{opacity:.6;cursor:default}#audio-library-block{border-top:1px solid var(--glass-border);padding-top:.6rem}.audio-lib-list{list-style:none;margin:.35rem 0 0;padding:0;max-height:168px;overflow-y:auto;display:flex;flex-direction:column;gap:.25rem}.audio-lib-item{display:flex;align-items:center;gap:.4rem;padding:.25rem .35rem;border-radius:.4rem;background:var(--glass-fill)}.audio-lib-name{flex:1 1 auto;min-width:0;font-family:var(--sans);font-size:.73rem;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audio-lib-actions{display:flex;gap:.2rem;flex:none}.audio-lib-btn{width:1.55rem;height:1.55rem;border-radius:.35rem;border:1px solid transparent;background:transparent;color:var(--ink-soft);cursor:pointer;font-size:.78rem;line-height:1;transition:border-color .2s ease,color .2s ease}.audio-lib-btn:hover{border-color:var(--gold);color:var(--ink)}.audio-lib-btn.danger:hover{border-color:var(--danger);color:var(--danger)}#volume-slider{-webkit-appearance:none;appearance:none;flex-grow:1;background:transparent;margin:0;padding:0;height:20px;border:none}#volume-slider:focus{outline:none}#volume-slider::-webkit-slider-runnable-track{width:100%;height:4px;background:var(--line-strong);border-radius:2px}#volume-slider::-webkit-slider-thumb{-webkit-appearance:none;height:16px;width:16px;border-radius:50%;background:var(--accent);margin-top:-6px;cursor:pointer;box-shadow:0 1px 4px #0006}#volume-slider::-moz-range-track{width:100%;height:4px;background:var(--line-strong);border-radius:2px}#volume-slider::-moz-range-thumb{height:16px;width:16px;border-radius:50%;background:var(--accent);border:none;cursor:pointer;box-shadow:0 1px 4px #0006}#audio-menu-toggle{display:none}@media(hover:none),(pointer:coarse),(max-width:900px){#audio-menu-toggle{display:flex}.audio-menu-container{position:fixed;top:calc(var(--nav-h) + 8px);right:auto;left:50%;transform:translate(-50%) translateY(-10px);width:min(320px,calc(100vw - 24px));max-height:calc(100svh - var(--nav-h) - 32px);overflow-y:auto}.audio-wrapper.is-open .audio-menu-container{transform:translate(-50%) translateY(0)}}.app-modal{position:fixed;inset:0;z-index:3000;display:none;align-items:center;justify-content:center;padding:1rem;background:#0000008c;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.app-modal.open{display:flex}.app-modal-card{background:var(--bg);border:1px solid var(--glass-border);border-radius:1.2rem;box-shadow:0 20px 60px #00000059;width:100%;max-width:440px;max-height:calc(100svh - 2rem);padding:1.4rem;display:flex;flex-direction:column;gap:.9rem;overflow:hidden;animation:modal-pop .25s cubic-bezier(.2,.8,.2,1)}.app-modal-card.wide{max-width:620px}@keyframes modal-pop{0%{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.app-modal-card{animation:none}}.app-modal-card h3{font-family:var(--serif);font-size:1.3rem;font-weight:500;text-align:center}.app-modal-body{overflow-y:auto;overscroll-behavior:contain;padding-right:.2rem;display:flex;flex-direction:column;gap:.6rem}.modal-btns{display:flex;gap:.6rem}.modal-btns button{flex:1;margin-top:0}.confirm-text{font-family:var(--sans);font-size:.9rem;color:var(--ink-soft);text-align:center;line-height:1.5}.crop-stage{position:relative;width:100%;aspect-ratio:1;max-height:min(58vh,360px);border-radius:.8rem;overflow:hidden;background:#111;touch-action:none;cursor:grab;user-select:none}.crop-stage:active{cursor:grabbing}.crop-stage img{position:absolute;top:50%;left:50%;transform-origin:center center;max-width:none;pointer-events:none;will-change:transform}.crop-overlay{position:absolute;inset:0;pointer-events:none}.crop-circle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(78%,280px);aspect-ratio:1;border-radius:50%;box-shadow:0 0 0 9999px #00000080;border:2px solid rgba(255,255,255,.85)}.crop-hint{font-family:var(--sans);font-size:.72rem;color:var(--ink-faint);text-align:center}.crop-controls{display:flex;flex-direction:column;gap:.4rem}.crop-controls label{font-family:var(--mono);font-size:.65rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint)}.crop-controls input[type=range]{width:100%;accent-color:var(--gold);touch-action:pan-x}.crop-rotation-row{display:flex;align-items:center;justify-content:space-between;margin-top:.3rem}.crop-rotation-reset{font-family:var(--mono);font-size:.65rem;color:var(--ink-soft);background:transparent;border:1px solid var(--line);border-radius:.8rem;padding:.15rem .55rem;cursor:pointer}.crop-rotation-reset:hover{border-color:var(--gold);color:var(--ink)}.prompt-input{font-family:var(--sans);font-size:.95rem;color:var(--ink);padding:.7rem .8rem;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--bg);width:100%}.prompt-input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 2px #b08a2e38}.settings-section{display:flex;flex-direction:column;gap:.5rem}.settings-section+.settings-section{border-top:1px solid var(--glass-border);padding-top:.9rem}.settings-title{font-family:var(--mono);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint)}.theme-choices{display:flex;flex-direction:column;gap:.45rem}.theme-choice{display:flex;flex-direction:column;gap:.15rem;text-align:left;padding:.65rem .85rem;border-radius:var(--radius-md);border:1px solid var(--glass-border);background:var(--glass-fill);color:var(--ink);cursor:pointer;transition:border-color .2s ease,background .2s ease,transform .15s ease}.theme-choice:hover{border-color:var(--gold);transform:translateY(-1px)}.theme-choice.is-active{border-color:var(--gold);background:color-mix(in srgb,var(--gold) 14%,transparent)}.theme-choice-name{font-family:var(--sans);font-weight:600;font-size:.86rem}.theme-choice-desc{font-family:var(--sans);font-size:.74rem;color:var(--ink-soft)}.segmented{display:flex;gap:.4rem}.segmented button{flex:1;padding:.5rem .6rem;border-radius:var(--radius-sm);border:1px solid var(--glass-border);background:var(--glass-fill);color:var(--ink);font-family:var(--sans);font-size:.82rem;cursor:pointer;transition:border-color .2s ease,background .2s ease}.segmented button.is-active{border-color:var(--gold);background:color-mix(in srgb,var(--gold) 14%,transparent);font-weight:600}.select-simple{font-family:var(--sans);font-size:.85rem;color:var(--ink);padding:.55rem .65rem;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--bg);width:100%;cursor:pointer}.btn-inline{align-self:flex-start;padding:.45rem 1rem;border-radius:1.4rem;border:1px solid var(--glass-border);background:var(--glass-fill);color:var(--ink);font-family:var(--sans);font-size:.82rem;font-weight:600;cursor:pointer;transition:border-color .2s ease}.btn-inline:hover{border-color:var(--gold)}@media(max-width:520px){.app-modal-card{padding:1rem;border-radius:1rem}}.custom-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.6rem;max-width:1100px;margin:0 auto;align-items:start}.custom-col{display:flex;flex-direction:column;gap:.9rem;min-width:0}.custom-col-head{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding-bottom:.5rem;border-bottom:1px solid var(--glass-border)}.custom-col-title{font-family:var(--mono);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint)}.btn-plus{width:2.1rem;height:2.1rem;flex:none;border-radius:50%;border:1px solid var(--glass-border);background:var(--glass-fill);color:var(--ink);font-size:1.2rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .2s ease,transform .15s ease,color .2s ease;-webkit-tap-highlight-color:transparent}.btn-plus:hover{border-color:var(--gold);color:var(--gold);transform:translateY(-1px)}.btn-plus:active{transform:scale(.94)}.custom-card{border:1px solid var(--glass-border);border-radius:var(--radius-md);background:var(--glass-fill);backdrop-filter:blur(12px) saturate(130%);-webkit-backdrop-filter:blur(12px) saturate(130%);padding:.95rem;display:flex;flex-direction:column;gap:.75rem;overflow:visible}.cc-head{display:flex;align-items:center;gap:.65rem}.cc-photo{flex:none}.cc-titles{flex:1 1 auto;min-width:0}.cc-title{font-family:var(--serif);font-weight:600;font-size:1.05rem;line-height:1.2;color:var(--ink);overflow-wrap:anywhere}.cc-kind{font-family:var(--mono);font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint)}.cc-actions{display:flex;gap:.25rem;flex:none}.cc-btn{width:1.8rem;height:1.8rem;border-radius:.45rem;border:1px solid transparent;background:transparent;color:var(--ink-soft);cursor:pointer;font-size:.85rem;line-height:1;transition:border-color .2s ease,color .2s ease}.cc-btn:hover{border-color:var(--gold);color:var(--ink)}.cc-btn.danger:hover{border-color:var(--danger);color:var(--danger)}.cc-units{display:grid;grid-template-columns:repeat(auto-fit,minmax(52px,1fr));gap:.3rem}.cc-unit{display:flex;flex-direction:column;align-items:center;gap:.12rem;padding:.45rem .2rem;border-radius:.5rem;background:var(--glass-fill);border:1px solid var(--line)}.cc-num{font-family:var(--mono);font-weight:700;font-variant-numeric:tabular-nums;font-size:clamp(.95rem,2.4vw,1.25rem);line-height:1;color:var(--accent-custom)}.cc-lbl{font-family:var(--mono);font-size:.5rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);text-align:center}.cc-state{font-family:var(--serif);font-size:1rem;color:var(--gold);text-align:center;min-height:1.2em}.cc-state:empty{display:none}.cc-cumul{margin:0;max-width:none}.cc-cumul .row{padding:.55rem .7rem}.cc-cumul .row .rvalue{font-size:clamp(.85rem,2.2vw,1.05rem)}.cc-cumul .row .rlabel{font-size:.78rem}.cc-copy-all{width:auto;height:auto;padding:.45rem 1rem;border-radius:1.2rem;font-family:var(--sans);font-size:.78rem;font-weight:600;color:var(--ink);align-self:center}.cc-copy-all svg{display:none}.custom-group .cg-members{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.4rem}.cg-member{padding:.5rem .55rem;border-radius:.55rem;background:var(--glass-fill);border:1px solid var(--line);min-width:0}.cg-member-title{font-family:var(--sans);font-size:.72rem;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cg-member-value{font-family:var(--mono);font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink);overflow-wrap:anywhere}.cg-member-cumul{grid-column:1 / -1}.cg-member-cumul .cc-cumul{margin-top:.4rem}.cg-member-cumul .cc-copy-all{margin-top:.45rem}.custom-group.size-sm .cg-member-value{font-size:.78rem}.custom-group.size-md .cg-member-value{font-size:.95rem}.custom-group.size-lg .cg-member-value{font-size:1.2rem}.custom-group.size-lg .cg-members{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.custom-group.size-sm .cg-members{grid-template-columns:repeat(auto-fit,minmax(100px,1fr))}.custom-group.size-sm .cg-member-cumul .rvalue{font-size:.8rem}.custom-group.size-md .cg-member-cumul .rvalue{font-size:.95rem}.custom-group.size-lg .cg-member-cumul .rvalue{font-size:1.15rem}.custom-group.size-sm .cg-member-cumul .rlabel{font-size:.68rem}.custom-group.size-lg .cg-member-cumul .rlabel{font-size:.84rem}.cg-preview{margin-top:.5rem;padding:.7rem;border:1px dashed var(--glass-border);border-radius:var(--radius-md);background:var(--glass-fill)}.cg-preview .empty-state{margin:0;padding:.6rem 0}.kind-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.5rem;margin-bottom:.4rem}.choice-tile{display:flex;flex-direction:column;gap:.2rem;text-align:left;padding:.7rem .8rem;border-radius:var(--radius-md);border:1px solid var(--glass-border);background:var(--glass-fill);color:var(--ink);cursor:pointer;transition:border-color .2s ease,background .2s ease,transform .15s ease}.choice-tile:hover{border-color:var(--gold);transform:translateY(-1px)}.choice-tile.selected{border-color:var(--gold);background:color-mix(in srgb,var(--gold) 14%,transparent)}.choice-tile-title{font-family:var(--sans);font-weight:600;font-size:.85rem}.choice-tile-desc{font-family:var(--sans);font-size:.73rem;color:var(--ink-soft);line-height:1.35}.form-field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.2rem}.form-field>span{font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint)}.form-field input[type=text]{font-family:var(--sans);font-size:.95rem;color:var(--ink);padding:.65rem .75rem;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--bg);width:100%}.form-field input[type=text]:focus,.form-field select:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 2px #b08a2e38}.form-block{border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:.85rem;background:var(--glass-fill)}.form-block-title{font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:.55rem}.duration-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(74px,1fr));gap:.4rem}.duration-cell{display:flex;flex-direction:column;gap:.2rem}.duration-cell span{font-family:var(--mono);font-size:.55rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);text-align:center}.duration-cell input{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:.95rem;text-align:center;color:var(--ink);padding:.5rem .3rem;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--bg);width:100%;-moz-appearance:textfield}.duration-cell input::-webkit-outer-spin-button,.duration-cell input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.duration-cell input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 2px #b08a2e38}.form-optional{border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:.6rem .85rem;background:var(--glass-fill)}.form-optional>summary{cursor:pointer;font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);list-style:none}.form-optional>summary::-webkit-details-marker{display:none}.form-optional>summary:before{content:"▸ "}.form-optional[open]>summary:before{content:"▾ "}.form-optional-body{padding-top:.7rem;display:flex;flex-direction:column;gap:.5rem}.member-picker{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem;max-height:190px;overflow-y:auto}.member-option{display:flex;align-items:center;gap:.5rem;padding:.4rem .5rem;border-radius:.45rem;background:var(--glass-fill);cursor:pointer;font-family:var(--sans);font-size:.82rem}.member-option input{accent-color:var(--gold);flex:none}.member-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-kind{font-family:var(--mono);font-size:.55rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);flex:none}.member-order{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem}.member-order-item{display:flex;align-items:center;gap:.5rem;padding:.4rem .5rem;border-radius:.45rem;background:var(--glass-fill);font-family:var(--sans);font-size:.82rem}.member-order-index{width:1.3rem;height:1.3rem;flex:none;border-radius:50%;background:var(--gold);color:var(--bg);font-family:var(--mono);font-size:.65rem;display:flex;align-items:center;justify-content:center}.member-order-actions{display:flex;gap:.2rem;flex:none}.member-order-actions button{width:1.5rem;height:1.5rem;border-radius:.35rem;border:1px solid var(--line);background:transparent;color:var(--ink-soft);cursor:pointer;line-height:1}.member-order-actions button:hover:not(:disabled){border-color:var(--gold);color:var(--ink)}.member-order-actions button:disabled{opacity:.3;cursor:default}@media(max-width:860px){.custom-cols{grid-template-columns:minmax(0,1fr);gap:2rem}}@media(max-width:480px){.cc-units{grid-template-columns:repeat(auto-fit,minmax(46px,1fr))}.duration-grid{grid-template-columns:repeat(auto-fit,minmax(64px,1fr))}}.music-field-label{font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint)}.music-picker{display:flex;align-items:stretch;gap:.35rem}.music-picker .select-simple{flex:1 1 auto;min-width:0}.music-btn{flex:0 0 auto;width:2.3rem;border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--bg);color:var(--ink);cursor:pointer;font-size:.9rem;line-height:1;transition:border-color .2s ease,color .2s ease,background .2s ease}.music-btn:hover{border-color:var(--gold)}.music-btn.danger:hover{border-color:var(--danger);color:var(--danger)}.music-btn[hidden]{display:none}.music-field .field-hint{margin-top:.1rem}.site-footer{width:100%;text-align:center;background:var(--section-tint);border-top:1px solid var(--glass-border);color:var(--ink-faint);padding:2.2rem 6vw 2.6rem}.site-footer .footer-copyright{font-family:var(--mono);font-size:.72rem;letter-spacing:.05em;color:var(--ink-soft);margin-bottom:.7rem}.site-footer .footer-legal{font-family:var(--sans);font-size:.76rem;line-height:1.55;max-width:640px;margin:0 auto .9rem;color:var(--ink-faint)}.site-footer .footer-contact{font-family:var(--sans);font-size:.78rem;line-height:1.55;max-width:640px;margin:0 auto;color:var(--ink-soft)}.footer-feedback{display:flex;flex-direction:column;align-items:center;gap:.8rem;margin-bottom:1.6rem;padding-bottom:1.6rem;border-bottom:1px solid var(--glass-border)}.footer-feedback-text{font-family:var(--sans);font-size:.85rem;color:var(--ink-soft)}.footer-feedback-cta{display:flex;align-items:center;gap:.6rem}.footer-feedback-arrow{font-size:1.2rem;color:var(--gold);animation:feedback-arrow-nudge 1.6s ease-in-out infinite}@keyframes feedback-arrow-nudge{0%,to{transform:translate(0)}50%{transform:translate(5px)}}.btn-home{display:inline-block;font-family:var(--sans);font-size:.82rem;font-weight:700;padding:.6rem 1.3rem;border-radius:1.5rem;text-decoration:none;background:#f2c230;color:#1d1c19;border:1px solid #d9a61e;transition:transform .15s,box-shadow .2s}.btn-home:hover{transform:translateY(-2px);box-shadow:0 6px 16px #d9a61e59}.btn-home:active{transform:scale(.96)}.beta-badge{position:fixed;right:1rem;bottom:calc(.9rem + env(safe-area-inset-bottom,0px));z-index:500;font-family:var(--mono);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);background:var(--glass-fill);border:1px solid var(--glass-border);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:.32rem .65rem;border-radius:999px;opacity:0;transform:translateY(6px);pointer-events:none;transition:opacity .4s ease,transform .4s ease,background-color .6s ease,border-color .6s ease,color .6s ease}.beta-badge.is-visible{opacity:.85;transform:translateY(0)}@media(max-width:640px){.beta-badge{right:.7rem;bottom:calc(.7rem + env(safe-area-inset-bottom,0px));font-size:.56rem;padding:.28rem .55rem}}@media(max-width:420px){.footer-feedback-cta{flex-direction:column;gap:.4rem}.footer-feedback-arrow{transform:rotate(90deg);animation:feedback-arrow-nudge-v 1.6s ease-in-out infinite}@keyframes feedback-arrow-nudge-v{0%,to{transform:rotate(90deg) translate(0)}50%{transform:rotate(90deg) translate(5px)}}}@media(max-width:600px){.site-footer{padding:1.8rem 7vw 2.2rem}.site-footer .footer-copyright{font-size:.68rem}.site-footer .footer-legal{font-size:.72rem}.site-footer .footer-contact{font-size:.74rem}}
