@font-face{font-family:RinSerif;src:url('assets/serif.ttf') format('truetype');font-display:swap}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden}body{background:#0d090d;color:#e9e1df;font-family:RinSerif,Georgia,serif;--progress:0;--left-turn:24deg;--right-turn:-24deg}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible,nav:focus-visible{outline:2px solid #d69d9e;outline-offset:5px}header{position:fixed;z-index:5;inset:26px 3.2vw auto;display:flex;justify-content:space-between;align-items:flex-start;pointer-events:none}.mini-logo{font-size:31px;letter-spacing:2px;color:#e9e1df;text-decoration:none;pointer-events:auto;line-height:.9}.mini-logo span{display:block;font-size:17px;text-align:center;margin-top:8px}#motion{pointer-events:auto;background:#130c1180;border:1px solid #6d515b70;border-radius:50%;width:36px;height:36px;font:16px Georgia;color:#b2a1a6}.ambient{position:fixed;inset:0;background:linear-gradient(90deg,transparent,#0d090d 77%),url('assets/background.webp') left center/70% 100% no-repeat}.scene{position:fixed;left:-1vw;top:0;width:62vw;height:100svh;pointer-events:none}.scene-inner{position:absolute;width:100%;height:100%;max-height:1100px;aspect-ratio:1000/941;inset:0;margin:auto}.scene-inner>img{position:absolute;width:100%;height:100%;object-fit:contain}.wing{will-change:transform;transform-style:preserve-3d}.wing-left{transform-origin:36% 29%;transform:perspective(1100px) rotateY(var(--left-turn)) rotate(calc(var(--progress) * 5deg))}.wing-right{transform-origin:63% 29%;transform:perspective(1100px) rotateY(var(--right-turn)) rotate(calc(var(--progress) * -5deg))}.portrait{z-index:2}.emblem{z-index:4;transform-origin:50% 64%;animation:heartbeat 3.1s infinite;filter:drop-shadow(0 0 5px #7e0b20)}.haze{position:absolute;z-index:3;background:url('assets/smoke.webp') center/cover;mix-blend-mode:screen;opacity:.12;filter:blur(15px);mask-image:radial-gradient(ellipse,#000 15%,transparent 66%);width:95%;height:57%;left:-5%;top:38%;animation:drift 23s ease-in-out infinite alternate;pointer-events:none}.haze-front{z-index:5;left:20%;top:59%;height:40%;opacity:.10;animation-duration:31s;animation-direction:alternate-reverse}.haze-back{z-index:1}main{position:fixed;left:63%;width:30%;top:13svh;bottom:8svh;display:flex;flex-direction:column}.identity{text-align:center;flex:none}h1{margin:0;font-size:clamp(88px,10vw,172px);line-height:1;letter-spacing:.025em;font-weight:400;background:linear-gradient(#f4eeea,#b6a9ad);color:transparent;background-clip:text}.ornament{display:flex;justify-content:center;align-items:center;gap:18px;color:#c4b9b9;font-size:20px;margin:12px 0 16px}.ornament span{width:80px;height:1px;background:linear-gradient(90deg,transparent,#b2a7a4)}.ornament span:last-child{transform:rotate(180deg)}.identity p{margin:0 0 34px;font-size:clamp(17px,1.5vw,24px);letter-spacing:.08em;white-space:nowrap}.list-wrap{position:relative;min-height:0;flex:1}nav{height:100%;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none;mask-image:linear-gradient(#000 0%,#000 91%,transparent 100%);padding:3px 5px 24px;scroll-behavior:smooth}nav::-webkit-scrollbar{display:none}.link-stack{display:flex;flex-direction:column;gap:17px;padding-bottom:35px}.link-card{flex:none;width:100%;min-height:87px;background:linear-gradient(120deg,#171016aa,#26111b55);border:1px solid #8a7a808f;border-radius:11px;display:flex;align-items:center;padding:20px 25px;text-align:left;gap:18px;transition:background .25s,border-color .25s,transform .25s}.link-card:hover{border-color:#dbb6bc;background:#49202b7a;transform:translateY(-2px)}.number{font:11px Arial,sans-serif;letter-spacing:.12em;color:#99858e}.label{font-size:clamp(23px,2vw,31px);flex:1}.arrow{font:29px Georgia;font-weight:300;color:#ccbabf}.private{border-color:#ab586b;background:linear-gradient(120deg,#421423a0,#21101877)}.label small{font:11px Arial,sans-serif;vertical-align:middle;border:1px solid #98616d;border-radius:20px;padding:4px 6px;margin-left:5px;color:#d9b8c1}.end-note{text-align:center;color:#ab929d;font-size:17px;margin:17px 0}.scroll-rail{position:absolute;right:-15px;top:3px;bottom:25px;width:2px;background:#70525e33}.scroll-rail i{position:absolute;top:calc(var(--progress) * 68%);height:32%;width:2px;background:#9f687c;transition:top .05s}.list-footer{flex:none;display:flex;justify-content:space-between;align-items:center;margin-top:16px;color:#97828c}#position{font:11px Arial;letter-spacing:.16em}#scroll-more{border:0;background:none;font-size:17px;color:#b4a0a8;padding:8px}#scroll-more span{padding-left:12px}#toast{position:fixed;bottom:26px;left:50%;transform:translate(-50%,15px);opacity:0;pointer-events:none;max-width:90vw;padding:15px 23px;border:1px solid #744552;background:#21121dec;backdrop-filter:blur(16px);border-radius:10px;font:15px/1.4 Arial,sans-serif;transition:.2s;z-index:10}#toast.visible{opacity:1;transform:translate(-50%,0)}@keyframes heartbeat{0%,38%,100%{transform:scale(1);filter:drop-shadow(0 0 3px #7d0b24)}10%{transform:scale(1.015);filter:drop-shadow(0 0 9px #bf153d)}17%{transform:scale(1)}25%{transform:scale(1.023);filter:drop-shadow(0 0 13px #ac1034)}}@keyframes drift{from{transform:translate(-3%,2%) scale(1)}to{transform:translate(8%,-5%) scale(1.12)}}.paused .emblem,.paused .haze{animation-play-state:paused}@media(max-width:760px){header{inset:19px 22px auto}.mini-logo{font-size:25px}.scene{width:110vw;left:-5vw;height:61svh;top:1svh;opacity:.9}.ambient{background:linear-gradient(0deg,#0d090d 10%,transparent 90%),url('assets/background.webp') center/cover}.scene-inner{height:100%;width:100%}main{left:7%;width:86%;top:43svh;bottom:3svh;background:linear-gradient(transparent,#0d090de8 23%)}h1{font-size:67px}.ornament{margin:3px 0 8px;gap:10px;font-size:15px}.ornament span{width:45px}.identity p{font-size:17px;margin-bottom:18px;letter-spacing:.04em}.link-card{min-height:73px;padding:16px 20px}.label{font-size:25px}.link-stack{gap:12px}.list-footer{margin-top:3px}#toast{bottom:12px;min-width:80vw;text-align:center}.scroll-rail{right:-8px}}@media(max-height:600px) and (min-width:761px){main{top:9vh;bottom:4vh}h1{font-size:75px}.identity p{margin-bottom:17px}.ornament{margin:5px 0 10px}.link-card{min-height:68px;padding:15px 20px}.label{font-size:24px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.emblem,.haze{animation:none!important}.wing{transform:none!important}}
/* Clean layered atmosphere: visible drifting smoke with softly blended edges. */
.ambient{background:linear-gradient(90deg,transparent 20%,#0d090d 82%),url('assets/background.webp') left center/65% 115% no-repeat}
.haze{width:77%;height:75%;left:-13%;top:22%;opacity:.42;filter:blur(4px);mask-image:radial-gradient(ellipse,#000 18%,#0009 42%,transparent 72%);animation-duration:14s;background-size:100% 100%}
.haze-front{left:35%;top:36%;width:65%;height:68%;opacity:.34;animation-duration:19s;transform:rotate(15deg);z-index:5}
.haze-back{z-index:1;opacity:.5}
.scene-inner:after{content:'';position:absolute;inset:60% 5% 0;background:linear-gradient(transparent,#0d090d);z-index:3;pointer-events:none}
@keyframes drift{0%{transform:translate(-5%,4%) scale(1)}50%{transform:translate(2%,-4%) scale(1.08)}100%{transform:translate(9%,-10%) scale(1.15)}}
@media(max-width:760px){.ambient{background:linear-gradient(0deg,#0d090d 15%,transparent 100%),url('assets/background.webp') center/cover}.haze{opacity:.34}.haze-front{opacity:.28}}
.ambient{background:radial-gradient(ellipse at 25% 38%,#291019 0%,#130b11 45%,#0d090d 75%)}
#smoke-canvas{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:1;mix-blend-mode:screen}
.scene{z-index:2}.scene-inner:after{display:none}main{z-index:3}
.haze{opacity:.13;filter:blur(8px);width:90%;height:65%;top:42%;left:-5%}.haze-front{opacity:.18;top:58%;left:5%;height:55%;width:95%;z-index:5}.haze-back{opacity:.12}
.scene-inner{mask-image:linear-gradient(#000 80%,transparent 100%)}
@media(max-width:760px){#smoke-canvas{width:150%;height:70%;left:-5%}.ambient{background:radial-gradient(ellipse at 50% 26%,#271019,#0d090d 70%)}}

#smoke-canvas{opacity:.8;filter:blur(2px)}
@media(max-width:760px){#smoke-canvas{mask-image:linear-gradient(#000 50%,transparent 100%)}main{background:none}.scene{mask-image:linear-gradient(#000 63%,transparent 99%)}}
/* Preserve source sharpness: never soften the portrait with CSS filters. */
.portrait{filter:none;image-rendering:auto}
/* Original portrait supplied by the owner; no generated face replacement. */
.wing-left{translate:6% 7%;transform-origin:36% 24%}.wing-right{translate:-6% 7%;transform-origin:64% 24%}
/* Larger framing wings and central emblem. */
.wing{scale:1.58}
.emblem{scale:1.15}
/* Mobile: separate illustration above the link panel. */
@media(max-width:760px){
 .scene{top:0;left:0;width:100%;height:46svh;opacity:1;mask-image:none;overflow:hidden}
 .scene-inner{mask-image:none}
 main{top:48svh;bottom:2svh;left:7%;width:86%;background:none}
 h1{font-size:46px}
 .ornament{margin:2px 0 5px;font-size:12px}
 .identity p{font-size:15px;margin-bottom:14px}
 .link-card{min-height:65px;padding:13px 18px}
 .label{font-size:23px}
 .link-stack{gap:10px}
}
