:root{--bg:#080809;--panel:#171719;--panel-2:#212124;--panel-3:#2b2b2e;--text:#f3f2f5;--muted:#aaa7af;--faint:#77737c;--red:#e73645;--red-2:#ff5662;--red-dark:#8f1825;--line:#ffffff17;--shadow:0 30px 80px #0000005c;--radius-xl:38px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:radial-gradient(circle at 50% -5%,#e736451a,transparent 30%),var(--bg);min-height:100vh;color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-family:Figtree,system-ui,sans-serif;overflow-x:hidden}button,input{font:inherit}button{color:inherit}svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:1em;height:1em}.topbar{z-index:5;justify-content:space-between;align-items:center;gap:16px;width:min(1120px,100% - 36px);margin:22px auto 0;display:flex;position:relative}.brand{color:var(--text);letter-spacing:.18em;align-items:center;gap:10px;font-size:11px;font-weight:800;text-decoration:none;display:inline-flex}.brand-mark{border:1px solid var(--line);background:#ffffff0a;border-radius:10px;place-items:center;width:28px;height:28px;display:grid}.brand-mark svg{width:18px;color:var(--red-2);stroke-width:1.5px}.topbar-button,.text-button{border:1px solid var(--line);cursor:pointer;background:#ffffff0b}.topbar-button{color:var(--muted);border-radius:999px;align-items:center;gap:8px;padding:10px 14px;font-size:12px;transition:all .25s;display:inline-flex}.topbar-button:hover{color:#fff;background:#ffffff14}.status-dot{background:#555;border-radius:50%;width:6px;height:6px;box-shadow:0 0 0 3px #ffffff0a}body.mode-active .status-dot{background:var(--red-2);box-shadow:0 0 15px #ff5662d9}.page{z-index:1;width:min(1120px,100% - 36px);margin:22px auto 28px;position:relative}.hero-grid{grid-template-columns:1.06fr .94fr;gap:24px;display:grid}.card{border:1px solid var(--line);border-radius:var(--radius-xl);box-shadow:var(--shadow);position:relative;overflow:hidden}.portrait-section{background:linear-gradient(145deg,#1d1d20,#111113 76%);min-height:0;margin-bottom:24px;padding:0}.portrait-feature{border-radius:inherit;cursor:zoom-in;text-align:left;isolation:isolate;background:#111;border:0;width:100%;height:285px;padding:0;display:block;position:relative;overflow:hidden}.portrait-feature img{object-fit:cover;object-position:center 30%;filter:saturate(.76)contrast(1.05)brightness(.72);width:100%;height:100%;transition:transform .7s cubic-bezier(.2,.7,.2,1),filter .4s;display:block;position:absolute;inset:0;transform:scale(1.012)}.portrait-feature:hover img{filter:saturate(.86)contrast(1.06)brightness(.79);transform:scale(1.035)}.portrait-overlay{z-index:1;pointer-events:none;background:radial-gradient(circle at 56% 30%,#ffffff0f,#0000 28%),linear-gradient(#0000000f 0%,#00000026 32%,#070608e0 100%),linear-gradient(90deg,#780c1d2e,#0000 46%,#0000003b);position:absolute;inset:0}.portrait-topline{z-index:2;color:#ffffffd1;letter-spacing:.16em;text-transform:uppercase;pointer-events:none;justify-content:space-between;align-items:center;gap:12px;font-size:10px;font-weight:800;display:flex;position:absolute;top:18px;left:22px;right:22px}.portrait-topline span:last-child{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#ffffffad;background:#00000038;border:1px solid #ffffff1c;border-radius:999px;padding:8px 11px}.portrait-copy{z-index:2;pointer-events:none;gap:8px;display:grid;position:absolute;bottom:25px;left:28px}.portrait-copy .eyebrow{color:#ffffff9e}.portrait-copy strong{letter-spacing:-.06em;font-size:clamp(28px,3.6vw,46px);line-height:.94}.portrait-badge{z-index:3;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#ffffffad;letter-spacing:.13em;pointer-events:none;background:#0000003b;border:1px solid #ffffff1c;border-radius:999px;padding:10px 12px;font-size:9px;font-weight:800;position:absolute;bottom:22px;right:22px}.portrait-badge i{color:var(--red-2);padding:0 5px;font-style:normal}.portrait-feature:active{transform:scale(.997)}.timeline-card{background:radial-gradient(circle at 90% 10%,#ffffff0e,#0000 24%),linear-gradient(145deg,#242426,#111113 74%);min-height:520px;padding:30px}.countdown-card{background:radial-gradient(circle at 74% 18%,#e7364533,#0000 35%),linear-gradient(145deg,#28282b,#141416 76%);flex-direction:column;justify-content:space-between;min-height:520px;padding:28px;display:flex}.countdown-top{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.countdown-top h2{letter-spacing:-.04em;margin:5px 0 0;font-size:26px}.countdown-date{color:#b7b2ba;letter-spacing:.15em;background:#ffffff0a;border:1px solid #ffffff1a;border-radius:999px;padding:8px 11px;font-size:9px;font-weight:800}.countdown-stage{grid-template-columns:210px 1fr;align-items:center;gap:26px;padding:24px 0;display:grid}.countdown-orb{background:radial-gradient(circle at 54% 38%,#ffffff1a,#0000 12%),radial-gradient(circle at 50% 52%,#e7364570,#0000 43%),#100c0e;border:7px solid #1b1b1e;border-radius:50%;place-items:center;width:190px;height:190px;display:grid;position:relative;box-shadow:inset 0 0 0 1px #ffffff0f,0 18px 60px #00000073}.countdown-orb-ring{border:1px solid #e7364552;border-radius:50%;position:absolute;inset:-12px}.countdown-orb-glow{filter:blur(19px);background:#ff42521f;border-radius:50%;transition:all .45s;position:absolute;inset:20%}.countdown-wolf{color:#f4f1f32e;z-index:2;width:145px;transition:all .45s;position:relative}.countdown-copy{min-width:0}.countdown-lead{letter-spacing:.18em;color:#777279;font-size:9px;font-weight:800}.countdown-numbers{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:13px;display:grid}.count-box{text-align:center;background:#ffffff09;border:1px solid #ffffff12;border-radius:16px;padding:14px 8px}.count-box strong{font-variant-numeric:tabular-nums;letter-spacing:-.05em;font-size:28px;line-height:1;display:block}.count-box span{color:#7f7a82;letter-spacing:.12em;margin-top:7px;font-size:7px;font-weight:800;display:block}.countdown-copy p{color:#b3aeb5;margin:13px 0 0;font-size:12px;line-height:1.55}.countdown-bottom{color:#656069;letter-spacing:.16em;justify-content:space-between;gap:12px;font-size:8px;font-weight:800;display:flex}.countdown-card.is-today{background:radial-gradient(circle at 74% 18%,#e7364557,#0000 36%),linear-gradient(145deg,#382126,#141113 78%)}.countdown-card.is-today .countdown-orb{box-shadow:inset 0 0 0 1px #ffffff0f,0 0 70px #e7364538,0 18px 60px #00000073}.countdown-card.is-today .countdown-orb-glow{opacity:1.6;transform:scale(1.4)}.countdown-card.is-today .countdown-wolf{color:#ffffff6b}.countdown-card.is-passed .countdown-numbers{display:none}.countdown-card.is-passed .countdown-copy p{color:#d8d3d9;font-size:14px}.countdown-card.is-passed .countdown-lead{color:#ff6d78}.birthday-card{background:radial-gradient(circle at 70% 30%,#ffffff14,#0000 25%),linear-gradient(135deg,#e44350 0%,#b52b38 45%,#791620 100%);grid-template-columns:minmax(0,1.4fr) minmax(180px,.6fr);gap:26px;min-height:540px;margin-top:24px;padding:40px 42px;display:grid}.calendar-card{background:linear-gradient(145deg,#1c1c1f,#111113 75%);margin-top:24px;padding:28px}.music-card{background:radial-gradient(circle at 50% 20%,#e736453d,#0000 42%),linear-gradient(145deg,#3a1217,#171011 72%);grid-template-columns:35% 65%;align-items:stretch;min-height:400px;margin-top:24px;padding:0;display:grid}.card-header,.mode-title-row,.calendar-heading{justify-content:space-between;align-items:center;gap:18px;display:flex}.eyebrow{color:var(--faint);letter-spacing:.18em;text-transform:uppercase;font-size:10px;font-weight:800;display:inline-block}.card h2{letter-spacing:-.04em;margin:5px 0 0;font-size:26px}.count-pill{color:#fff;background:#ffffff14;border:1px solid #ffffff0f;border-radius:999px;place-items:center;min-width:36px;height:36px;padding:0 10px;font-size:13px;font-weight:700;display:grid}.timeline-list{gap:10px;margin-top:26px;display:grid}.timeline-item{text-align:left;cursor:pointer;background:#ffffff09;border:1px solid #ffffff0a;border-radius:17px;grid-template-columns:58px 1fr 40px;align-items:center;gap:10px;width:100%;padding:14px;transition:all .22s;display:grid}.timeline-item:hover{background:#fff1;border-color:#ffffff1a;transform:translateY(-2px)}.timeline-item.is-active{background:linear-gradient(135deg,#e73645fa,#b52b38f5);border-color:#ffffff21}.time{color:#aaa6ae;font-variant-numeric:tabular-nums;font-size:11px}.timeline-item.is-active .time{color:#ffffffc7}.timeline-copy{gap:3px;min-width:0;display:grid}.timeline-copy strong{font-size:14px}.timeline-copy small{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.timeline-item.is-active .timeline-copy small{color:#ffffffc7}.item-icon{color:#c2c0c4;background:#ffffff0f;border-radius:50%;place-items:center;width:34px;height:34px;display:grid}.item-icon svg{width:16px}.timeline-item.is-active .item-icon{color:#fff;background:#ffffff21}.text-button{color:#dbd8df;background:0 0;border:0;align-items:center;gap:8px;margin-top:20px;padding:5px 0;font-size:12px;display:inline-flex}.text-button:hover{color:#fff}.text-button svg{width:14px}.orb-wrap{background:#29292c;border-radius:28px;place-items:center;min-height:322px;display:grid;position:relative;overflow:hidden}.orb-wrap:after{content:"";filter:blur(30px);background:#0000005c;border-radius:50%;height:160px;position:absolute;inset:auto 10% -25%}.orb{background:radial-gradient(circle at 56% 37%,#ffffff1f,#0000 13%),radial-gradient(circle at 46% 52%,#e736456b,#0000 38%),#130d0f;border:9px solid #1a1a1d;border-radius:50%;place-items:center;width:215px;height:215px;display:grid;position:relative;box-shadow:inset 0 0 0 1px #ffffff0f,0 16px 50px #00000073}.orb-ring{border:1px solid #e7364552;border-radius:50%;width:234px;height:234px;position:absolute}.orb-glow{filter:blur(18px);background:#ff425226;border-radius:50%;transition:all .5s;position:absolute;inset:22%}.wolf-silhouette{color:#f0f0f42e;z-index:2;width:170px;transition:all .5s;position:relative}.orb-tag{letter-spacing:.15em;color:#96939a;font-size:8px;font-weight:800;position:absolute;bottom:20px;left:22px}.mode-copy{padding:22px 8px 4px}.mode-copy p{color:#7b757d;margin:6px 0 16px;font-size:13px}.round-button{color:#ff6b76;cursor:pointer;background:#2d2731;border:1px solid #0000000f;border-radius:50%;place-items:center;width:54px;height:54px;transition:all .25s;display:grid}.round-button:hover{transform:rotate(10deg)scale(1.04);box-shadow:0 8px 20px #00000029}.round-button svg{width:23px}.primary-button{color:#fff;cursor:pointer;background:#231c22;border:0;border-radius:999px;padding:12px 17px;font-size:12px;font-weight:700;transition:all .25s}.primary-button:hover{transform:translateY(-1px);box-shadow:0 10px 25px #0000002b}.birthday-art{background:#0000001a;border-radius:28px;min-height:450px;padding:12px;position:relative;overflow:hidden}.photo-gallery{grid-template-rows:1fr 1fr;grid-template-columns:1.08fr .92fr 1fr;gap:10px;display:grid;position:absolute;inset:12px;transform:rotate(-1.2deg)}.photo-tile{cursor:pointer;background:#202022;border:1px solid #fff3;border-radius:17px;padding:0;transition:transform .25s,box-shadow .25s,filter .25s;position:relative;overflow:hidden;box-shadow:0 16px 34px #00000038}.photo-tile:hover{filter:brightness(1.05);transform:translateY(-5px)scale(1.015);box-shadow:0 22px 42px #0000004d}.photo-tile img{object-fit:cover;width:100%;height:100%;display:block}.tile-1{grid-area:1/1/span 2;transform:translateY(4px)rotate(-1deg)}.tile-2{grid-area:1/2;transform:translateY(-3px)rotate(1.3deg)}.tile-3{grid-area:1/3;transform:translateY(5px)rotate(-1.5deg)}.tile-4{grid-area:2/2;transform:translateY(2px)rotate(-.8deg)}.tile-5{grid-area:2/3;transform:translateY(-3px)rotate(1deg)}.tile-6{grid-area:2/1;display:none}.gallery-label{color:#ffffffb8;letter-spacing:.18em;text-align:right;text-shadow:0 2px 10px #00000059;z-index:3;pointer-events:none;font-size:9px;font-weight:800;line-height:1.45;position:absolute;bottom:15px;right:16px}.birthday-content{align-self:center}.birthday-content .eyebrow{color:#ffffffab}.birthday-content h1{letter-spacing:-.075em;margin:10px 0 17px;font-size:clamp(48px,6vw,78px);font-weight:800;line-height:.92}.birthday-content h1 span{color:#ffffffa1}.lead{color:#ffffffd9;max-width:650px;font-size:15px;line-height:1.6}.message-lines{color:#ffffffc2;gap:8px;max-width:650px;margin-top:25px;font-size:12px;display:grid}.message-lines p{margin:0}.signature-row{color:#ffffffa8;letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:10px;margin-top:26px;font-size:10px;display:flex}.heart-line{color:#fff;place-items:center;display:grid}.heart-line svg{fill:currentColor;stroke-width:1.2px;width:16px}.birthday-side{text-align:right;flex-direction:column;justify-content:flex-end;align-items:flex-end;gap:18px;display:flex}.date-display{background:#0000001f;border:1px solid #ffffff21;border-radius:24px;justify-items:end;width:150px;padding:20px;display:grid}.date-display .date-month{letter-spacing:.2em;opacity:.66;font-size:11px;font-weight:800}.date-display strong{letter-spacing:-.08em;margin:9px 0 6px;font-size:64px;line-height:.9}.date-display>span:last-child{opacity:.68;font-size:11px}.side-note{color:#ffffff94;max-width:160px;font-size:10px;line-height:1.5}.calendar-heading{margin-bottom:22px}.calendar-heading h2{letter-spacing:-.05em;margin:5px 0 0;font-size:28px}.calendar-badge{color:#ff7380;letter-spacing:.15em;background:#e736451f;border:1px solid #e7364547;border-radius:999px;padding:9px 12px;font-size:9px;font-weight:800}.weekdays,.calendar-grid{grid-template-columns:repeat(7,1fr);gap:8px;display:grid}.weekdays{margin-bottom:8px}.weekdays span{color:#6f6b72;letter-spacing:.14em;text-align:center;font-size:9px;font-weight:800}.calendar-grid button,.calendar-grid .empty{background:#ffffff06;border:1px solid #ffffff0f;border-radius:17px;min-height:88px;position:relative}.calendar-grid .empty{background:0 0;border-color:#0000}.calendar-day{cursor:pointer;color:#aaa7ae;justify-content:flex-end;align-items:flex-start;padding:10px;font-size:12px;transition:all .2s;display:flex}.calendar-day:hover{color:#fff;background:#ffffff0d;transform:translateY(-2px)}.calendar-day.birthday{color:#fff;background:linear-gradient(145deg,#e44350,#9c202c);border-color:#ffffff29;flex-direction:column;justify-content:space-between;align-items:stretch;box-shadow:0 12px 30px #e736452b}.calendar-day.birthday strong{font-size:17px}.calendar-day.birthday small{color:#ffffffd1;letter-spacing:.07em;text-transform:uppercase;font-size:9px;font-weight:800;line-height:1.25}.calendar-day.birthday:after{content:"";background:#fff;border-radius:50%;width:6px;height:6px;position:absolute;top:10px;right:10px;box-shadow:0 0 18px #ffffffe6}.music-visual{place-items:center;min-height:400px;display:grid;position:relative;overflow:hidden}.music-visual:before{content:"";filter:blur(50px);background:#e736452e;border-radius:50%;width:340px;height:340px;position:absolute}.record{background:radial-gradient(circle,#09090a 0 7%,#0000 7.5%),repeating-radial-gradient(circle,#272428 0 3px,#191719 4px 7px);border:1px solid #ffffff14;border-radius:50%;width:260px;height:260px;position:relative;box-shadow:0 30px 70px #00000080}.record:after{content:"";border:1px solid #ffffff14;border-radius:50%;position:absolute;inset:10%}.record-center{z-index:1;background:#121114;border:1px solid #ffffff14;border-radius:50%;width:50px;height:50px;position:absolute;top:calc(50% - 25px);left:calc(50% - 25px)}.needle{transform-origin:top;background:#97929a;border-radius:999px;width:9px;height:145px;position:absolute;top:30px;right:20px;transform:rotate(21deg);box-shadow:0 5px 20px #0000004d}.needle:after{content:"";background:var(--red-2);border-radius:50%;width:15px;height:15px;position:absolute;bottom:-6px;left:-3px}.music-main{flex-direction:column;min-width:0;padding:28px 28px 26px;display:flex}.music-marquee{color:#ffffff73;letter-spacing:.21em;white-space:nowrap;padding-bottom:18px;font-size:11px;font-weight:800;overflow:hidden}.music-marquee span{color:var(--red-2);padding:0 12px}.music-info{align-items:center;gap:15px;margin-top:10px;display:flex}.cover-placeholder{color:#aaa4aa;background:#292729;border:1px solid #ffffff12;border-radius:17px;flex:none;place-items:center;width:74px;height:74px;display:grid}.cover-placeholder svg{width:34px}.music-info h3{letter-spacing:-.03em;margin:5px 0 3px;font-size:20px}.music-info p{color:var(--muted);margin:0;font-size:12px}.progress-row{grid-template-columns:44px 1fr 44px;align-items:center;gap:10px;margin-top:28px;display:grid}.progress-row span{color:#89858c;font-variant-numeric:tabular-nums;font-size:10px}.range{width:100%;accent-color:var(--red-2);cursor:pointer}.controls{grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;margin-top:22px;display:grid}.music-hint{color:#777178;justify-self:start;font-size:10px;line-height:1.5}.music-hint code{color:#b5afb6;border:1px solid var(--line);background:#ffffff0d;border-radius:6px;padding:3px 5px}.center-controls{align-items:center;gap:14px;display:inline-flex}.icon-button,.play-button{cursor:pointer;background:0 0;border:0;place-items:center;display:grid}.icon-button{color:#9c969d;width:30px;height:30px}.icon-button svg{width:18px}.play-button{color:#21191c;background:#f5f2f3;border-radius:50%;width:52px;height:52px;transition:transform .2s;box-shadow:0 10px 30px #00000040}.play-button:hover{transform:scale(1.05)}.play-button svg{width:20px}.pause-icon,body.audio-playing .play-icon{display:none}body.audio-playing .pause-icon{display:block}.volume{color:#9c969d;justify-self:end;align-items:center;gap:8px;display:flex}.volume svg{width:15px}.volume-range{width:85px}body.mode-active{--red:#f24454;--red-2:#ff6974}body.mode-active .orb{box-shadow:inset 0 0 0 1px #ffffff0f,0 0 70px #e736452e,0 18px 50px #00000073}body.mode-active .orb-glow{opacity:1.55;transform:scale(1.45)}body.mode-active .wolf-silhouette{color:#ffffff73;transform:scale(1.04)}body.mode-active .record{animation:5.5s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.snow-layer{pointer-events:none;z-index:10;opacity:0;transition:opacity .35s;position:fixed;inset:0;overflow:hidden}body.mode-active .snow-layer{opacity:1}.snowflake{will-change:transform;background:#ffffffb3;border-radius:50%;animation:linear infinite fall;position:absolute;top:-20px}@keyframes fall{0%{transform:translateY(-8vh)rotate(0)}45%{transform:translate3d(calc(var(--drift) * .55),45vh,0) rotate(90deg)}to{transform:translate3d(var(--drift),110vh,0) rotate(200deg)}}.photo-modal{z-index:35;display:none;position:fixed;inset:0}.photo-modal.is-open{display:block}.photo-backdrop{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#000000d1;position:absolute;inset:0}.photo-panel{flex-direction:column;align-items:center;gap:14px;width:min(880px,100% - 36px);display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.photo-panel img{background:#151518;border:1px solid #ffffff24;border-radius:22px;width:auto;max-width:100%;height:auto;max-height:76vh;display:block;box-shadow:0 40px 120px #0009}.photo-panel p{color:#bdb8bf;text-align:center;letter-spacing:.04em;margin:0;font-size:11px}.photo-panel .modal-close{top:-50px;right:0}.modal{z-index:30;display:none;position:fixed;inset:0}.modal.is-open{display:block}.modal-backdrop{-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);background:#000000b3;position:absolute;inset:0}.modal-panel{border:1px solid var(--line);background:linear-gradient(145deg,#252126,#131113);border-radius:30px;width:min(520px,100% - 36px);padding:34px;animation:.28s forwards modalIn;position:absolute;top:50%;left:50%;transform:translate(-50%,-46%);box-shadow:0 40px 120px #0000008c}@keyframes modalIn{to{transform:translate(-50%,-50%)}}.modal-close{border:1px solid var(--line);color:#aaa7ae;cursor:pointer;background:#ffffff0a;border-radius:50%;place-items:center;width:36px;height:36px;display:grid;position:absolute;top:18px;right:18px}.modal-panel h2{letter-spacing:-.05em;margin:11px 0 12px;font-size:34px}.modal-wolf{color:#7b767e;letter-spacing:.18em;text-transform:uppercase;margin-top:24px;font-size:10px}.reveal{opacity:0;animation:.65s forwards reveal;transform:translateY(18px)}.reveal:nth-child(2){animation-delay:80ms}.birthday-card.reveal{animation-delay:.16s}.calendar-card.reveal{animation-delay:.2s}.music-card.reveal{animation-delay:.24s}@keyframes reveal{to{opacity:1;transform:translateY(0)}}.footer{color:#57535b;letter-spacing:.14em;justify-content:space-between;gap:18px;padding:18px 4px 5px;font-size:9px;font-weight:800;display:flex}.modal-panel p{color:#c0bdc3;white-space:pre-wrap;font-size:14px;line-height:1.7}@media (width<=900px){.portrait-feature{height:260px}.hero-grid{grid-template-columns:1fr}.timeline-card,.countdown-card{min-height:auto}.countdown-card{padding:26px}.countdown-stage{grid-template-columns:minmax(170px,210px) 1fr;gap:24px;padding:28px 0}.birthday-card{grid-template-columns:1fr}.birthday-art{order:2;min-height:290px}.birthday-content{order:1}.birthday-side{text-align:left;flex-direction:row;order:3;justify-content:space-between;align-items:flex-start}.date-display{width:132px}.date-display strong{font-size:54px}.music-card{grid-template-columns:1fr}.music-visual{min-height:300px}}@media (width<=620px){.topbar,.page{width:min(100% - 22px,1120px)}.topbar{margin-top:12px}.topbar-button{padding:9px 11px}.hero-grid{gap:14px}.card{border-radius:26px}.timeline-card,.countdown-card,.calendar-card{padding:20px}.timeline-item{grid-template-columns:48px 1fr 34px}.item-icon{width:30px;height:30px}.countdown-card{min-height:0}.countdown-top{align-items:flex-start;gap:10px}.countdown-top h2{font-size:23px}.countdown-date{white-space:nowrap;padding:7px 9px;font-size:7px}.countdown-stage{grid-template-columns:132px minmax(0,1fr);align-items:center;gap:18px;padding:26px 0 22px}.countdown-orb{width:132px;height:132px;margin:0 auto}.countdown-orb-ring{inset:-9px}.countdown-wolf{width:102px}.countdown-copy{text-align:left}.countdown-lead{font-size:8px;line-height:1.55}.countdown-numbers{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:10px}.count-box{border-radius:12px;padding:10px 5px}.count-box strong{font-size:22px}.count-box span{margin-top:5px;font-size:6px}.countdown-copy p{margin-top:10px;font-size:10px;line-height:1.45}.countdown-bottom{font-size:7px}.calendar-card{overflow:visible}.calendar-heading{align-items:flex-start;gap:10px}.calendar-heading h2{font-size:23px}.calendar-badge{white-space:nowrap;padding:7px 8px;font-size:7px}.calendar{width:100%}.weekdays,.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;width:100%}.weekdays span{letter-spacing:.08em;font-size:7px}.calendar-grid button,.calendar-grid .empty{border-radius:12px;min-height:58px}.calendar-day{min-width:0;padding:7px;font-size:10px}.calendar-day.birthday strong{font-size:14px}.calendar-day.birthday small{font-size:6px}.birthday-card,.calendar-card,.music-card{margin-top:14px}.birthday-card{min-height:0;padding:22px}.birthday-art{min-height:235px}.birthday-content h1{font-size:52px}.birthday-side{margin-top:12px}.music-card{grid-template-columns:1fr;min-height:0;display:grid}.music-visual{align-items:center;min-height:168px;padding:18px 18px 8px}.music-visual:before{filter:blur(42px);width:240px;height:180px}.record{width:148px;height:148px}.record-center{width:34px;height:34px;top:calc(50% - 17px);left:calc(50% - 17px)}.needle{width:6px;height:82px;top:17px;right:2px}.needle:after{width:11px;height:11px;bottom:-5px;left:-2.5px}.music-main{padding:10px 18px 18px}.music-info{gap:11px;margin-top:0}.cover-placeholder{border-radius:14px;width:56px;height:56px}.cover-placeholder svg{width:27px}.music-info h3{margin:4px 0 2px;font-size:17px}.music-info p{font-size:10px;line-height:1.35}.progress-row{grid-template-columns:39px 1fr 39px;gap:7px;margin-top:17px}.progress-row span{font-size:9px}.controls{grid-template-columns:1fr auto 1fr;gap:6px;margin-top:15px}.music-hint{white-space:nowrap;justify-self:start;font-size:9px}.center-controls{gap:8px}.icon-button{width:26px;height:26px}.icon-button svg{width:16px}.play-button{width:46px;height:46px}.play-button svg{width:18px}.volume{justify-self:end;gap:5px}.volume svg{width:14px}.volume-range{width:62px}.footer{flex-wrap:wrap}.photo-gallery{grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr;gap:7px;inset:9px;transform:none}.tile-1{grid-area:1/1;transform:rotate(-1deg)}.tile-2{grid-area:1/2;transform:rotate(1deg)}.tile-3{grid-area:2/1;transform:rotate(1deg)}.tile-4{grid-area:2/2;transform:rotate(-1deg)}.tile-5,.tile-6{display:none}.gallery-label{font-size:7px;bottom:9px;right:10px}.photo-panel{width:calc(100% - 24px)}.photo-panel img{max-height:68vh}.photo-panel .modal-close{top:-46px;right:0}}@media (width<=390px){.countdown-stage{grid-template-columns:108px minmax(0,1fr);gap:13px}.countdown-orb{width:108px;height:108px}.countdown-wolf{width:84px}.countdown-top h2{font-size:21px}.count-box strong{font-size:19px}.countdown-copy p{font-size:9px}.calendar-grid button,.calendar-grid .empty{min-height:52px}.calendar-day{padding:6px;font-size:9px}.music-visual{min-height:150px}.record{width:132px;height:132px}.needle{height:74px}.music-main{padding-left:14px;padding-right:14px}.music-info h3{font-size:16px}.music-info p{font-size:9px}.music-hint{font-size:8px}.volume-range{width:52px}.center-controls{gap:5px}.play-button{width:44px;height:44px}}.clock-orb{overflow:visible}.clock-face{z-index:3;background:radial-gradient(circle at 50% 48%,#ff43522e,#ff43520d 28%,#0000 55%),radial-gradient(circle,#140b0d 0%,#0d0b0d 70%);border-radius:50%;width:100%;height:100%;position:relative;box-shadow:inset 0 0 35px #ffffff06,inset 0 0 80px #e7364514}.clock-face:before,.clock-face:after{content:"";pointer-events:none;border:1px solid #ffffff0b;border-radius:50%;position:absolute;inset:11px}.clock-face:after{border-color:#e7364513;inset:24px}.clock-marker{transform-origin:50%;background:#ffffff4d;border-radius:999px;width:2px;height:8px;position:absolute;top:50%;left:50%}.marker-12{transform:translate(-50%,-50%)translateY(-71px)}.marker-3{width:8px;height:2px;transform:translate(-50%,-50%)translate(71px)}.marker-6{transform:translate(-50%,-50%)translateY(71px)}.marker-9{width:8px;height:2px;transform:translate(-50%,-50%)translate(-71px)}.clock-hand{transform-origin:50% 100%;z-index:5;border-radius:999px;position:absolute;bottom:50%;left:50%;transform:translate(-50%)rotate(0)}.clock-hour{background:#f4f1f3;width:5px;height:43px;box-shadow:0 0 10px #ffffff1f}.clock-minute{background:#ffffffc2;width:3px;height:60px}.clock-second{background:var(--red-2);width:1.5px;height:67px;box-shadow:0 0 12px #ff566273}.clock-center{background:var(--red-2);z-index:8;border:2px solid #171214;border-radius:50%;width:9px;height:9px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 13px #ff566299}.clock-label{color:#777279;letter-spacing:.18em;white-space:nowrap;font-size:8px;font-weight:800;position:absolute;bottom:-27px;left:50%;transform:translate(-50%)}body.mode-active .clock-face{box-shadow:inset 0 0 35px #ffffff06,inset 0 0 80px #e736451f,0 0 34px #e7364514}body.mode-active .clock-second{box-shadow:0 0 16px #ff5662b3}@media (width<=620px){.clock-face{width:100%;height:100%}.marker-12{transform:translate(-50%,-50%)translateY(-49px)}.marker-3{transform:translate(-50%,-50%)translate(49px)}.marker-6{transform:translate(-50%,-50%)translateY(49px)}.marker-9{transform:translate(-50%,-50%)translate(-49px)}.clock-hour{height:31px}.clock-minute{height:43px}.clock-second{height:50px}.clock-label{font-size:6px;bottom:-22px}}.music-card{grid-template-columns:29% 71%;min-height:318px}.music-visual{min-height:318px}.record{width:218px;height:218px}.record-center{width:42px;height:42px;top:calc(50% - 21px);left:calc(50% - 21px)}.needle{width:8px;height:120px;top:28px;right:13px}.needle:after{width:14px;height:14px;bottom:-6px;left:-3px}.music-main{justify-content:center;padding:22px 26px}.music-marquee{padding-bottom:12px}.music-info{margin-top:0}.progress-row{margin-top:18px}.controls{margin-top:15px}.play-button{width:48px;height:48px}@media (width<=900px){.music-card,.music-visual{min-height:300px}.record{width:196px;height:196px}}@media (width<=620px){.music-card{grid-template-columns:1fr;min-height:0}.music-visual{min-height:158px;padding:16px 18px 6px}.music-visual:before{width:220px;height:165px}.record{width:140px;height:140px}.record-center{width:32px;height:32px;top:calc(50% - 16px);left:calc(50% - 16px)}.needle{width:6px;height:78px;top:16px;right:2px}.needle:after{width:11px;height:11px;bottom:-5px;left:-2.5px}.music-main{padding:8px 16px 16px}.music-marquee{padding:7px 0 10px;font-size:9px}.music-info{gap:10px}.cover-placeholder{border-radius:13px;width:54px;height:54px}.cover-placeholder svg{width:25px}.music-info h3{margin:3px 0 2px;font-size:17px}.music-info p{font-size:9px;line-height:1.3}.progress-row{grid-template-columns:38px 1fr 38px;gap:7px;margin-top:15px}.controls{margin-top:13px}.play-button{width:45px;height:45px}.icon-button{width:26px;height:26px}.volume-range{width:58px}.music-hint{font-size:8px}}@media (width<=390px){.portrait-feature{height:185px}.portrait-copy strong{font-size:21px}.portrait-badge{display:none}.music-visual{min-height:142px}.record{width:126px;height:126px}.needle{height:71px}.music-main{padding-left:13px;padding-right:13px}.music-info h3{font-size:16px}.music-info p{font-size:8.5px}.volume-range{width:50px}.play-button{width:43px;height:43px}}.timeline-card,.countdown-card{min-height:460px}@media (width<=900px){.timeline-card,.countdown-card{height:auto!important;min-height:auto!important}.countdown-card{justify-content:flex-start}}@media (width<=620px){.timeline-card,.countdown-card{height:auto!important;min-height:0!important}}.cover-placeholder{background:#1c1b1d;position:relative;overflow:hidden}.cover-placeholder img{object-fit:cover;object-position:center;width:100%;height:100%;display:block}.calendar-day.birthday:after{display:none!important}.calendar-day.birthday small{white-space:nowrap;letter-spacing:.04em;font-size:9px}@media (width<=620px){.calendar-day.birthday small{letter-spacing:.02em;white-space:nowrap;font-size:7px}.calendar-day.birthday strong{font-size:16px}}@media (width<=390px){.calendar-day.birthday small{font-size:6.5px}.calendar-day.birthday strong{font-size:15px}}@media (width<=620px){.modal{padding:14px 0;overflow-y:auto}.modal-panel{-webkit-overflow-scrolling:touch;width:calc(100% - 24px);max-height:calc(100dvh - 28px);margin:0 auto;padding:58px 22px 24px;position:relative;top:auto;left:auto;overflow-y:auto;animation:none!important;transform:none!important}.modal-panel .modal-close{z-index:20;position:absolute;top:14px;right:14px}}
