@font-face{font-family:'Inter';font-style:normal;font-weight:300;font-display:swap;src:url('../assets/fonts/inter-latin-300-normal.woff2') format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url('../assets/fonts/inter-latin-700-normal.woff2') format('woff2')}
@property --return-angle{syntax:'<angle>';inherits:false;initial-value:0deg}
html{scroll-padding-top:0}
.cover-shell{height:46svh}.hero{position:fixed;inset:0;z-index:6;min-height:0;--cover-progress:0}
body:not(.cover-mode) .hero{visibility:hidden;pointer-events:none}
.cover-mode #home-view>section{visibility:hidden;pointer-events:none}
.hero .hero-title{font-family:'Inter',Arial,sans-serif;font-size:80px;font-weight:700;line-height:1.13;letter-spacing:0;top:36%;margin:0;opacity:calc(1 - var(--cover-progress) * .78);transform:none;text-shadow:0 1px 0 #d0ccb7,0 3px 0 #797f68,0 6px 12px #15201755,0 16px 36px #15201766}
.return-progress{position:fixed;left:50%;top:18px;transform:translateX(-50%);z-index:12;width:44px;height:44px;padding:3px;border-radius:50%;background:conic-gradient(var(--olive) var(--return-angle),var(--line) 0);box-shadow:0 3px 16px #30372d18;pointer-events:none;transition:--return-angle 90ms linear}
.return-progress span{display:grid;place-items:center;width:100%;height:100%;border-radius:50%;background:var(--paper);color:var(--olive);font-size:20px}
.hero .hero-title{left:6%;right:6%;top:29%;bottom:auto;line-height:1.08;max-width:none;color:#fff;-webkit-text-stroke:0;text-shadow:0 2px 2px #111a0d66,0 7px 18px #111a0d80,0 18px 38px #111a0d55}
.hero-title span{display:block;width:max-content}
.hero-title .title-owner{font-size:58px;font-weight:700;margin-bottom:12px}
.hero-title .title-name{font-size:100px;font-weight:700;margin-left:0}
@media(min-width:651px){.hero.title-composited .hero-title{opacity:0;pointer-events:none}}
.cover-curtain{position:absolute;inset:0;background:#182019;opacity:calc(var(--cover-progress) * .72);pointer-events:none}
.music-player{--seek:0%;position:fixed;left:auto;right:0;bottom:0;z-index:10;width:100%;height:84px;padding:12px 3%;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:24px;border:0;border-radius:0;background:#233025b8;color:#f5f3eb;backdrop-filter:blur(22px);box-shadow:none}
.music-drag,.music-collapse,.music-orb{display:none}.music-player>#music-seek{grid-area:auto}.track-summary{display:flex;align-items:center;gap:14px;min-width:0}.album-disc{position:relative;width:52px;height:52px;flex-shrink:0;border-radius:50%;border:4px solid #20251f;background:url('../media/summer-playlist-cover.webp') center/cover;box-shadow:0 0 0 1px #ffffff20;animation:disc-spin 16s linear infinite;animation-play-state:paused}.playing .album-disc{animation-play-state:running}
.music-track{display:grid;min-width:0;gap:3px}.music-track>button{padding:0;overflow:hidden;color:inherit;font-size:13px;line-height:1.5;text-align:left;text-overflow:ellipsis;white-space:nowrap}.music-track>span{font-size:11px;opacity:.6}.transport{display:flex;align-items:center;justify-content:center;gap:20px}
.icon-button{display:grid;place-items:center;width:30px;height:32px;padding:5px;flex-shrink:0;border-radius:4px}.icon-button img,.music-play img,.music-file-label img{width:18px;height:18px;filter:invert(1);pointer-events:none}
.music-play{display:grid;place-items:center;width:44px;height:44px;border:0;background:#f5f3eb;color:#343e2e;padding:0;border-radius:50%}.music-play img{filter:none;width:21px;height:21px}.music-play:hover{background:#e5e7d9}
.music-tools{display:flex;align-items:center;justify-content:flex-end;gap:12px;min-width:0}.music-tools #music-time{font-size:9px;color:inherit;opacity:.6}#music-volume{width:70px;height:3px;accent-color:#e2e4d6;cursor:pointer}.music-file-label{position:relative;display:grid;place-items:center;width:28px;height:32px;flex-shrink:0;cursor:pointer}.music-file-label input{position:absolute;inset:0;width:100%;opacity:0;cursor:pointer}
.music-player>#music-seek{position:absolute;left:0;top:-7px;width:100%;height:14px;margin:0;border:0;appearance:none;-webkit-appearance:none;background:transparent;accent-color:white;cursor:pointer;z-index:2}.music-player>#music-seek:disabled{cursor:default;opacity:.35}
#music-seek::-webkit-slider-runnable-track{height:1px;background:linear-gradient(to right,#fff var(--seek),#ffffff35 var(--seek))}#music-seek::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:7px;height:7px;margin-top:-3px;border-radius:50%;background:#fff;opacity:0;transition:opacity .2s}#music-seek:hover::-webkit-slider-thumb,#music-seek:focus-visible::-webkit-slider-thumb{opacity:1}
#music-seek::-moz-range-track{height:1px;background:#ffffff35}#music-seek::-moz-range-progress{height:1px;background:#fff}#music-seek::-moz-range-thumb{width:6px;height:6px;background:#fff;border:0}
.music-player.compact{left:auto;right:24px;bottom:24px;top:auto;width:min(354px,calc(100vw - 32px));height:168px;padding:34px 18px 15px;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:52px 38px;gap:20px 12px;background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 30px #30372d18;animation:none}
.compact .music-drag{display:block;position:absolute;top:4px;left:14px;width:50px;height:26px;font-size:20px;cursor:grab;touch-action:none;color:var(--olive);text-align:left}.compact .music-collapse{display:block;position:absolute;right:8px;top:3px;width:30px;height:26px;font-size:22px;color:var(--olive)}
.compact .track-summary{grid-column:1/-1;grid-row:1}.compact .album-disc{width:44px;height:44px;border-width:6px}.compact .music-track{grid-column:auto}.compact .transport{grid-column:1;grid-row:2;gap:10px;justify-content:flex-start}.compact .music-play{width:34px;height:34px;background:#7e8762}.compact .music-play img{filter:invert(1);width:17px;height:17px}
.compact .music-tools{grid-column:2;grid-row:2;gap:4px}.compact #music-volume{width:56px;accent-color:var(--olive)}.compact .music-tools #music-time{position:absolute;right:18px;top:79px;font-size:8px;color:var(--muted)}.compact .icon-button img,.compact .music-file-label img{filter:none;opacity:.65}
.compact>#music-seek{top:99px;left:18px;width:calc(100% - 36px)}.compact #music-seek::-webkit-slider-runnable-track{background:linear-gradient(to right,var(--olive) var(--seek),var(--line) var(--seek))}.compact #music-seek::-webkit-slider-thumb{background:var(--olive)}
.music-player.compact.collapsed{width:58px;height:58px;display:block;padding:0;border-radius:50%;overflow:visible}.compact.collapsed>:not(.music-orb):not(audio):not(.sr-only){display:none}.compact.collapsed .music-orb{position:relative;display:grid;place-items:center;width:100%;height:100%;overflow:hidden;border-radius:50%;font-size:20px;color:#fff;cursor:grab;touch-action:none;background:linear-gradient(#26312655,#26312655),url('../media/summer-playlist-cover.webp') center/cover;box-shadow:0 5px 20px #30372d20}
.music-orb:before{content:'';position:absolute;inset:4px;z-index:2;border:1px solid #f5f3eb99;border-top-color:#fff;border-radius:50%;pointer-events:none}.music-orb .orb-symbol{position:relative;z-index:3;text-shadow:0 1px 6px #172016}.playing .music-orb:before{animation:orb-spin 6s linear infinite}.playing .orb-symbol{animation:orb-breathe 2.4s ease-in-out infinite}.music-player.dragging{user-select:none}.music-player.dragging .music-drag,.music-player.dragging .music-orb{cursor:grabbing}
@keyframes disc-spin{to{transform:rotate(360deg)}}@keyframes orb-spin{to{transform:rotate(360deg)}}@keyframes orb-breathe{50%{opacity:.7;transform:scale(.92)}}
@media(max-width:760px){.music-player{gap:12px;padding:12px 18px;grid-template-columns:minmax(0,1fr) auto}.album-disc{width:40px;height:40px;border-width:5px}.track-summary{gap:10px}.transport{gap:8px}.music-tools{grid-column:1/-1;justify-content:flex-end;gap:10px}.music-player:not(.compact){height:114px;grid-template-rows:44px 24px;gap:6px 12px}.music-player:not(.compact) .music-tools #music-time{margin-right:auto}.hero-caption{bottom:135px}.cover-invitation{bottom:163px}.music-track>button{font-size:12px}.music-player.compact{right:16px;bottom:16px}}
@media(max-width:900px){.hero .hero-title{font-size:64px}}
@media(max-width:650px){.cover-shell{height:40svh}.hero .hero-title{top:auto;bottom:36%;font-size:40px}.hero .hero-title br{display:block}}
@media(max-width:360px){.hero .hero-title{font-size:34px}}
@media(prefers-reduced-motion:reduce){.cover-curtain{display:none}.music-player,.album-disc,.music-orb:before,.music-orb span{animation:none!important}}
@media(min-width:1600px){.hero-title .title-owner{font-size:78px}.hero-title .title-name{font-size:132px}}
@media(max-width:1100px){.hero-title .title-owner{font-size:48px}.hero-title .title-name{font-size:84px}}
@media(max-width:900px){.hero-title .title-owner{font-size:42px}.hero-title .title-name{font-size:74px}}
@media(max-width:650px){.hero .hero-title{left:6%;right:6%;top:auto;bottom:33%}.hero-title .title-owner{font-size:30px;margin-bottom:10px}.hero-title .title-name{font-size:60px}}
@media(max-width:360px){.hero-title .title-name{font-size:54px}.hero-title .title-owner{font-size:27px}}
