/* Self-hosted Latin fonts (no Google CDN) */

:root{
  --ink:#1b2a48; --ink2:#3d5480; --mist:#dfe7f2; --paper:#fbfcfe; --pink:#eeb6c3; --blue:#8fb0d8;
  --serif:"Noto Serif SC","Source Han Serif SC","Songti SC","STSong","SimSun",serif;
  --latin:"Cormorant Garamond",Georgia,serif;
  --script:"Pinyon Script","Snell Roundhand",cursive;
  --mono:"IBM Plex Mono",ui-monospace,monospace;
  --ease:cubic-bezier(.22,.9,.24,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;overflow:hidden;background:#cdd9ea}
body{font-family:var(--serif);color:var(--ink);-webkit-font-smoothing:antialiased}
#viewport{position:fixed;inset:0;overflow:hidden;background:linear-gradient(180deg,#c9d7ea,#e9eef6)}
#stage{position:absolute;inset:0;width:100vw;height:100vh;overflow:hidden;
  --padX:clamp(8px,1.2vw,28px); --gap:clamp(2px,.5vw,12px); --rail:clamp(52px,4.2vw,76px);
  display:grid;grid-template-columns:minmax(0,21fr) minmax(0,58fr) minmax(0,21fr);grid-template-rows:minmax(0,1fr) auto;
  column-gap:var(--gap);padding:0 var(--padX) 0 calc(var(--padX) + var(--rail));
  background:
    radial-gradient(60vw 58vh at 50% 40%,rgba(255,255,255,.75),transparent 70%),
    radial-gradient(48vw 56vh at 90% 90%,rgba(238,182,195,.18),transparent 70%),
    linear-gradient(170deg,#c4d4ea 0%,#d9e3f1 35%,#edf1f7 70%,#e4eaf3 100%)}
kbd{font-family:var(--mono);font-size:11px;background:var(--ink);color:#fff;padding:2px 7px;border-radius:2px;letter-spacing:.5px}

/* atmosphere */
.sky{position:absolute;inset:0;pointer-events:none}
.cloud{position:absolute;border-radius:50%;background:radial-gradient(closest-side,rgba(255,255,255,.95),rgba(255,255,255,0));filter:blur(8px);animation:drift 60s linear infinite alternate}
.c1{width:43vw;height:27vh;left:-8vw;top:58vh}
.c2{width:36vw;height:22vh;left:62vw;top:-4vh;animation-duration:80s}
.c3{width:48vw;height:29vh;left:35vw;top:78vh;animation-duration:90s}
.c4{width:29vw;height:20vh;left:76vw;top:66vh;animation-duration:70s}
@keyframes drift{to{transform:translateX(80px)}}
.contour-bg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.grain{position:absolute;inset:0;pointer-events:none;opacity:.32;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .55  0 0 0 0 .6  0 0 0 0 .7  0 0 0 .35 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}

/* left tags */
.tags{position:absolute;left:calc(var(--padX) * .8);top:0;bottom:56px;width:56px;display:flex;flex-direction:column;align-items:center;justify-content:space-evenly;padding:2vh 0 0;z-index:20}
.tags::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:linear-gradient(var(--ink2),rgba(61,84,128,.2))}
.tag{position:relative;width:46px;height:62px;display:grid;place-items:center;cursor:pointer;
  background:rgba(255,255,255,.82);backdrop-filter:blur(6px);border:1px solid rgba(27,42,72,.55);
  clip-path:polygon(50% 0,100% 18%,100% 100%,0 100%,0 18%);border-radius:0 0 8px 8px;
  box-shadow:0 2px 0 rgba(255,255,255,.8) inset;transition:transform .5s var(--ease),background .3s}
.tag::after{content:"";position:absolute;top:7px;left:50%;width:6px;height:6px;margin-left:-3px;border-radius:50%;border:1px solid var(--ink2);background:#e9eef6}
.tag svg{width:22px;height:22px;margin-top:10px;fill:none;stroke:var(--ink);stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
.tag:hover{transform:rotate(-6deg) translateY(2px)}
.tag.on{background:var(--ink)}
.tag.on svg{stroke:#fff}
.tag-tassel{width:2px;height:60px;background:repeating-linear-gradient(var(--ink2) 0 3px,transparent 3px 6px);margin-top:-20px}

/* title */
.col{position:relative;min-width:0;min-height:0;grid-row:1}
.col-left{grid-column:1;display:flex;flex-direction:column;padding-top:clamp(14px,2.6vh,30px);z-index:9}
.title-block{position:relative;z-index:6;height:clamp(118px,17vh,150px);flex:none}
.ghost-num{position:absolute;left:0;top:-34px;font-family:var(--latin);font-style:italic;font-weight:300;font-size:clamp(110px,15vh,150px);line-height:1;
  color:transparent;-webkit-text-stroke:1.2px var(--ink);letter-spacing:-6px;opacity:.85;transition:opacity .4s}
.label-chip{position:relative;left:clamp(120px,9.5vw,156px);top:6px;display:inline-block;background:var(--ink);color:#fff;font-family:var(--mono);font-size:11px;letter-spacing:2px;padding:4px 10px}
.title-block h1{position:relative;left:clamp(120px,9.5vw,156px);top:6px;font-weight:900;font-size:clamp(46px,6.6vh,64px);letter-spacing:6px;line-height:1.1}
.title-block h1 span{color:transparent;-webkit-text-stroke:1.3px var(--ink);font-weight:600}
.title-block .sub{position:relative;left:clamp(120px,9.5vw,156px);top:8px;font-family:var(--mono);font-size:10px;letter-spacing:1.2px;color:var(--ink2)}
.title-block .by{position:relative;left:clamp(120px,9.5vw,156px);top:12px;font-family:var(--latin);font-style:italic;font-size:15px;color:var(--ink2)}

/* collage */
.collage{position:relative;flex:1;min-height:0;container-type:size;z-index:4;pointer-events:none;margin-bottom:8px}
.collage>*{position:absolute;pointer-events:auto;transition:transform .8s var(--ease)}
.card-photo{left:10%;top:3%;width:min(62cqw,46cqh);padding:10px 10px 30px;background:#fff;transform:rotate(-5deg);
  box-shadow:0 18px 30px -18px rgba(27,42,72,.45),0 1px 2px rgba(27,42,72,.2)}
.card-photo svg{display:block;width:100%}
.card-photo figcaption{position:absolute;bottom:4px;right:14px;font-family:var(--script);font-size:20px;color:var(--ink2)}
.card-map{left:48%;top:40%;width:min(50cqw,36cqh);padding:7px;background:#fff;transform:rotate(6deg);box-shadow:0 14px 26px -16px rgba(27,42,72,.5)}
.card-map svg{display:block;width:100%}
.tape{position:absolute;width:74px;height:20px;background:rgba(238,182,195,.55);backdrop-filter:blur(1px);
  -webkit-mask:linear-gradient(90deg,transparent 0 3px,#000 3px calc(100% - 3px),transparent 0)}
.tape.t1{top:-9px;left:62px;transform:rotate(-8deg)}
.tape.t2{top:-10px;right:24px;transform:rotate(6deg);background:rgba(143,176,216,.55)}
.sticker{filter:drop-shadow(0 0 0 #fff) drop-shadow(0 6px 10px rgba(27,42,72,.25))}
.sticker svg{display:block;width:100%}
.lattice{left:0;top:43%;width:min(28cqw,19cqh);transform:rotate(-8deg)}
.lattice span{position:absolute;bottom:-18px;left:12px;font-size:11px;letter-spacing:2px;color:var(--ink2);font-family:var(--serif)}
.lattice svg{background:#fff;border-radius:50%;padding:4px}
.ginkgo{left:min(66%,calc(10% + 44cqh));top:0;width:min(21cqw,14cqh);transform:rotate(18deg)}
.ginkgo svg{background:#fff;border-radius:46% 54% 40% 60%;padding:6px}
.postmark{right:2%;bottom:13%;width:min(25cqw,16cqh);transform:rotate(-12deg);opacity:.9}
.grass{left:-2%;bottom:6%;width:min(30cqw,22cqh);opacity:.9}
.quote{left:8%;bottom:1%;width:min(76cqw,300px);padding:clamp(10px,1.6vh,16px) 18px clamp(9px,1.4vh,14px);background:rgba(255,255,255,.88);transform:rotate(-2deg);
  font-size:13px;line-height:1.7;letter-spacing:1px;box-shadow:0 12px 24px -16px rgba(27,42,72,.5)}
.quote .fr{font-family:var(--latin);font-style:italic;font-size:15px;line-height:1.35;margin-top:6px;color:var(--ink2)}

/* center */
.center{grid-column:2;position:relative;display:flex;flex-direction:column;align-items:center;z-index:8;padding-top:clamp(2px,.6vh,10px);padding-bottom:0}
.center>*{pointer-events:auto}
.gate-ring{position:absolute;left:-48px;top:-48px;width:496px;height:496px;border-radius:50%;pointer-events:none;z-index:-1;
  border:20px solid rgba(255,255,255,.68);backdrop-filter:blur(2px);
  box-shadow:0 0 0 1px rgba(27,42,72,.18),inset 0 0 0 1px rgba(27,42,72,.18),0 30px 60px -30px rgba(27,42,72,.35),inset 0 20px 40px -20px rgba(27,42,72,.15)}
.script-head{position:relative;z-index:3;flex:none;text-align:center;font-family:var(--script);font-size:clamp(22px,2.8vh,32px);line-height:1;color:var(--ink);
  text-shadow:0 2px 0 #fff;transition:opacity .4s, transform .6s var(--ease);max-height:2.2em;overflow:hidden}
.searchbar{position:relative;z-index:3;flex:none;margin-top:clamp(2px,.6vh,6px);width:min(100%,400px);height:clamp(32px,3.8vh,38px);display:flex;align-items:center;gap:8px;padding:0 10px 0 16px;
  background:rgba(255,255,255,.9);border:1px solid rgba(27,42,72,.35);border-radius:6px;box-shadow:0 10px 24px -14px rgba(27,42,72,.5),0 0 0 4px rgba(255,255,255,.5)}
.searchbar .script{font-family:var(--script);font-size:21px;white-space:nowrap}
.searchbar input{flex:1;min-width:0;border:0;background:none;outline:none;font:13px var(--serif);color:var(--ink);letter-spacing:1px}
.searchbar input::placeholder{color:#7d8aa3}
.pill{font-family:var(--serif);font-size:11px;background:var(--ink);color:#fff;padding:3px 8px;white-space:nowrap}
.searchbar kbd{background:#fff;color:var(--ink);border:1px solid var(--ink)}
.tabs{position:relative;z-index:3;flex:none;margin-top:clamp(2px,.5vh,6px);margin-bottom:2px;display:flex;justify-content:center;gap:clamp(4px,.8vw,14px)}
.tabs button{font:12px var(--serif);color:var(--ink);background:none;border:0;padding:4px 10px;cursor:pointer;letter-spacing:1px;transition:background .3s,color .3s}
.tabs button i{font-style:normal;font-family:var(--mono);font-size:10px;margin-right:3px;opacity:.7}
.tabs button.on{background:var(--ink);color:#fff}
.tabs button.on::after{content:" ■";font-size:8px}

.compass-slot{position:relative;flex:1 1 auto;min-height:0;width:100%;z-index:1;overflow:visible}
.compass{position:absolute;left:50%;top:48%;width:400px;height:400px;margin:-200px 0 0 -200px;transform:scale(var(--k,1));transform-origin:center}
.ring{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
#ringRot{transform-origin:220px 220px;transition:transform 1.1s var(--ease)}
#sectorLabels text{cursor:pointer;transition:fill .3s}
#sectorLabels text.on{font-weight:500}
.diamond{position:absolute;left:50%;top:50%;width:170px;height:170px;margin:-85px 0 0 -85px;transform:rotate(45deg);
  border:1px solid rgba(27,42,72,.7);outline:1px solid rgba(27,42,72,.35);outline-offset:6px;
  background:linear-gradient(135deg,rgba(255,255,255,.95),rgba(214,226,242,.85));box-shadow:0 20px 40px -20px rgba(27,42,72,.6);overflow:hidden;transition:transform 1.1s var(--ease)}
.diamond-in{position:absolute;inset:-30%;transform:rotate(-45deg)}
.dia-contour{position:absolute;inset:0;width:100%;height:100%}
.dia-word{position:absolute;left:0;right:0;top:174px;text-align:center;font-family:var(--script);font-size:38px;color:var(--ink);text-shadow:0 1px 0 #fff;transition:opacity .35s,transform .5s var(--ease)}
.dia-chip{position:absolute;left:50%;top:128px;transform:translateX(-50%);font-family:var(--mono);font-size:9.5px;letter-spacing:1px;padding:2px 7px;background:#fff;border:1px solid var(--ink);white-space:nowrap}
.recent{position:absolute;left:96px;top:168px;width:178px;z-index:5;background:#fff;border:1px solid var(--ink);box-shadow:3px 3px 0 rgba(27,42,72,.15);transition:opacity .35s,transform .5s var(--ease)}
.recent b,.recent span{font-family:var(--mono);font-size:9.5px;font-weight:500;letter-spacing:1px}
.recent b{display:inline-block;background:var(--ink);color:#fff;padding:2px 6px}
.recent span{float:right;padding:2px 6px}
.recent p{font-size:11.5px;padding:5px 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.big-num{position:absolute;left:-30px;top:250px;font-family:var(--latin);font-style:italic;font-weight:300;font-size:130px;line-height:1;color:transparent;-webkit-text-stroke:1.2px var(--ink);transition:opacity .35s,transform .6s var(--ease)}
.pager{position:absolute;right:-34px;top:236px;font-family:var(--mono);font-size:11px;letter-spacing:1px}
.side-label{display:none;font-family:var(--mono);font-size:10px;letter-spacing:2px;color:var(--ink2)}
.rot-btn{position:absolute;top:184px;width:30px;height:30px;border-radius:50%;border:1px solid var(--ink);background:rgba(255,255,255,.85);color:var(--ink);font:18px/1 var(--latin);cursor:pointer;transition:background .3s,color .3s}
.rot-btn:hover{background:var(--ink);color:#fff}
.rot-btn.prev{left:-44px}.rot-btn.next{right:-44px}

.detail{position:absolute;left:50%;bottom:clamp(4px,.8vh,10px);transform:translateX(-50%);z-index:6;flex:none;width:min(92%,460px);background:rgba(255,255,255,.94);border:1px solid rgba(27,42,72,.5);box-shadow:0 18px 30px -20px rgba(27,42,72,.6)}
.detail header{background:var(--ink);color:#fff;font-family:var(--mono);font-size:10.5px;letter-spacing:2px;padding:5px 10px}
.detail header b{display:inline-block;background:var(--pink);color:var(--ink);padding:0 5px;margin-right:6px}
.detail header span{float:right}
.d-meta{display:flex;align-items:center;gap:8px;padding:7px 12px 0;font-family:var(--mono);font-size:10px;color:var(--ink2)}
.chip{font-family:var(--serif);font-size:11px;padding:2px 7px;border:1px solid var(--ink)}
.chip.dark{background:var(--ink);color:#fff}
.d-meta .enter{margin-left:auto;font-family:var(--serif);color:var(--ink)}
.detail h3{font-size:15px;font-weight:600;padding:5px 12px 2px;letter-spacing:1px}
.detail p{font-size:12px;line-height:1.55;padding:0 12px 10px;color:#33415e;letter-spacing:.5px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.detail.swap h3,.detail.swap p{animation:fadeUp .5s var(--ease)}

/* right */
.right{grid-column:3;z-index:9;display:flex;flex-direction:column;padding-top:clamp(14px,2.4vh,30px);padding-bottom:10px}
.pavilion-bg{position:absolute;left:0;top:7vh;width:min(60%,300px);pointer-events:none}
.right-head{position:relative;flex:none;align-self:flex-end;text-align:right}
.date-row{display:flex;align-items:center;justify-content:flex-end;gap:10px}
.big-date{font-family:var(--latin);font-weight:500;font-size:clamp(36px,3.2vw,60px);letter-spacing:1px;line-height:1}
.dow{font-family:var(--mono);font-size:11px;background:var(--ink);color:#fff;padding:3px 6px}
.date-sub{margin-top:8px;font-family:var(--mono);font-size:10.5px;letter-spacing:2px;color:var(--ink2)}
.clock{border:1px solid var(--ink);padding:1px 6px;margin-left:8px;color:var(--ink)}
.char-row{position:relative;flex:none;display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-top:-1vh}
.huge-char{font-size:clamp(110px,19vh,230px);font-weight:900;line-height:1;color:var(--ink);
  text-shadow:6px 6px 0 rgba(255,255,255,.7);transition:opacity .35s,transform .6s var(--ease),filter .35s}
.huge-char.out{opacity:0;transform:translateY(-14px);filter:blur(6px)}
.char-note{text-align:right;padding-bottom:1.4vh;font-family:var(--latin);font-size:16px;line-height:1.3;font-weight:500}
.char-note i{font-size:18px}
.results{position:relative;margin-top:clamp(10px,2.2vh,28px);width:100%;max-height:100%;min-height:0;background:rgba(255,255,255,.9);border:1px solid rgba(27,42,72,.45);
  box-shadow:0 20px 40px -24px rgba(27,42,72,.6);outline:1px solid rgba(27,42,72,.2);outline-offset:5px}
.results header{background:var(--ink);color:#fff;font-family:var(--mono);font-size:12px;letter-spacing:2px;padding:7px 10px}
.results header b{display:inline-block;background:var(--pink);color:var(--ink);padding:0 5px;margin-right:6px}
.results header span{font-family:var(--serif)}
.res-sub{font-family:var(--mono);font-size:10.5px;letter-spacing:1px;color:var(--ink2);padding:10px 14px 6px;border-bottom:1px dashed rgba(27,42,72,.3)}
.res-sub span:first-child{font-family:var(--latin);font-size:22px;color:var(--ink)}
.res-sub .hint{float:right;margin-top:8px}
#list{list-style:none;padding:4px 0}
#list li{position:relative;display:grid;grid-template-columns:34px 1fr auto;gap:12px;align-items:center;padding:clamp(7px,1.45vh,16px) 16px;cursor:pointer;border-bottom:1px solid rgba(27,42,72,.08);
  transition:background .3s;animation:slideIn .55s var(--ease) both}
#list li .n{font-family:var(--mono);font-size:10.5px;border:1px solid var(--ink);text-align:center;padding:2px 0}
#list li h4{font-size:14px;font-weight:600;letter-spacing:.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#list li small{display:block;font-family:var(--mono);font-size:9.5px;color:#7a88a3;letter-spacing:.5px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#list li time{font-family:var(--mono);font-size:10.5px;text-align:right;line-height:1.3}
#list li time em{display:block;font-style:normal;color:#7a88a3;font-size:9.5px}
#list li.on{background:linear-gradient(90deg,rgba(143,176,216,.25),rgba(255,255,255,0))}
#list li.on::before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:3px;background:var(--ink)}
#list li.on .n{background:var(--ink);color:#fff}
#list li.on::after{content:"";position:absolute;right:-6px;top:50%;width:9px;height:9px;margin-top:-5px;transform:rotate(45deg);background:var(--pink);border:1px solid var(--ink)}
#list li:hover{background:rgba(143,176,216,.14)}
.empty{padding:20px 14px;font-size:13px;color:var(--ink2)}

/* keybar */
.keybar{grid-column:1 / -1;grid-row:2;position:relative;display:flex;align-items:center;gap:clamp(12px,1.6vw,28px);font-size:12px;letter-spacing:1px;z-index:12;
  border-top:1px solid rgba(27,42,72,.35);padding:10px 0 16px;white-space:nowrap}
.keybar kbd{margin-right:5px}
.right-meta{margin-left:auto;font-family:var(--mono);font-size:10.5px;letter-spacing:2px;color:var(--ink2)}
.barcode{width:90px;height:20px;background:repeating-linear-gradient(90deg,var(--ink) 0 1px,transparent 1px 3px,var(--ink) 3px 5px,transparent 5px 6px,var(--ink) 6px 7px,transparent 7px 10px)}

/* petals */
.petals{position:absolute;inset:0;pointer-events:none;z-index:15}
.petal{position:absolute;top:-30px;width:12px;height:9px;background:var(--pink);border-radius:80% 0 80% 0;opacity:.75;animation:fall linear infinite}
.petal.b{background:#c6d8ef}
@keyframes fall{0%{transform:translate(0,0) rotate(0)}100%{transform:translate(-160px,110vh) rotate(540deg)}}

.toast{position:absolute;left:50%;top:22px;transform:translate(-50%,-80px);background:var(--ink);color:#fff;font-size:13px;letter-spacing:1px;padding:10px 18px;z-index:30;transition:transform .5s var(--ease)}
.toast.show{transform:translate(-50%,0)}

/* swap animations */
.fade{opacity:0!important;transform:translateY(8px)!important}
@keyframes slideIn{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:none}}
@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* intro */
body.intro .collage>*{opacity:0;translate:0 -30px}
.collage>*{transition:transform .8s var(--ease),opacity .9s var(--ease),translate .9s var(--ease)}
body.intro .gate-ring{opacity:0;scale:.92}
.gate-ring{transition:opacity 1.2s var(--ease),scale 1.4s var(--ease)}

/* v3 fluid — narrow windows */
@media (max-width:1100px){
  #stage{grid-template-columns:minmax(0,20fr) minmax(0,60fr) minmax(0,20fr);--gap:8px}
  .keybar span:nth-child(3),.barcode{display:none}
  .char-note{font-size:13px}
}
@media (max-height:640px){
  .quote .fr,.grass{display:none}
  .title-block .by{display:none}
}
#list li>div{min-width:0}
.title-block .sub{white-space:nowrap}
@media (max-width:1240px){
  .title-block .sub{font-size:8.5px;letter-spacing:.6px}
  .title-block .by{font-size:13px}
  .quote{font-size:12px}
  .quote .fr{font-size:13px}
}

/* ================= v3 · hiver+ ================= */
:root{--frost:rgba(255,255,255,.92);--frostline:rgba(176,198,226,.9);--cold:#b9c9de}
#viewport{background:linear-gradient(180deg,#c3d0e2,#eef2f7)}
#stage{background:
  radial-gradient(60vw 58vh at 50% 40%,rgba(255,255,255,.82),transparent 70%),
  radial-gradient(46vw 50vh at 88% 92%,rgba(214,228,246,.55),transparent 70%),
  radial-gradient(40vw 40vh at 8% 96%,rgba(255,255,255,.7),transparent 70%),
  linear-gradient(170deg,#bccbe0 0%,#d3deec 34%,#eef2f8 70%,#e2e9f2 100%)}
/* snow drift along the bottom */
#stage::after{content:"";position:absolute;left:0;right:0;bottom:0;height:9vh;pointer-events:none;z-index:2;
  background:radial-gradient(60% 100% at 20% 100%,rgba(255,255,255,.85),transparent 70%),radial-gradient(50% 90% at 78% 100%,rgba(255,255,255,.75),transparent 70%)}
.cloud{background:radial-gradient(closest-side,rgba(255,255,255,.98),rgba(240,246,252,0))}
/* frosted cards */
.card-photo,.card-map,.quote,.detail,.results,.searchbar,.recent{
  box-shadow:0 0 0 1px var(--frost) inset,0 0 0 3px rgba(255,255,255,.55),0 18px 34px -20px rgba(70,100,150,.55)!important}
.detail,.results{background:rgba(250,252,255,.9)}
.results{outline-color:var(--frostline)}
.card-photo::before,.quote::before,.detail::before{content:"";position:absolute;left:6%;right:6%;top:-4px;height:7px;border-radius:6px;
  background:linear-gradient(#fff,rgba(255,255,255,.6));box-shadow:0 1px 2px rgba(120,150,190,.35);pointer-events:none;z-index:2}
.detail{/* keep absolute from layout block */}
.tag{background:rgba(248,251,255,.86);border-color:rgba(27,42,72,.5)}
.tag:not(.on)::before{content:"";position:absolute;left:0;right:0;top:0;height:12px;background:linear-gradient(rgba(255,255,255,.95),transparent);pointer-events:none}
.gate-ring{border-color:rgba(255,255,255,.72)}
.diamond{background:linear-gradient(135deg,#fff,rgba(220,232,246,.9))}
.hiver-tag{font-family:var(--mono);font-size:10.5px;letter-spacing:2px;padding:3px 6px;border:1px solid var(--ink);background:rgba(255,255,255,.85);color:var(--ink)}
.pine svg{background:#fff;border-radius:44% 56% 46% 54%;padding:6px}
.huge-char{text-shadow:6px 6px 0 rgba(255,255,255,.85),0 0 24px rgba(255,255,255,.6)}
/* snowfall */
.snow{position:absolute;inset:0;pointer-events:none;z-index:16;overflow:hidden}
.flake{position:absolute;top:-12px;border-radius:50%;background:#fff;box-shadow:0 0 5px rgba(255,255,255,.95),0 0 0 .6px rgba(110,140,185,.55),0 1px 3px rgba(80,110,160,.35);
  animation:snowfall linear infinite,sway ease-in-out infinite alternate}
.flake.frost{border-radius:1px;transform:rotate(45deg);background:rgba(255,255,255,.9)}
@keyframes snowfall{to{top:104vh}}
@keyframes sway{from{translate:-14px 0}to{translate:14px 0}}
@media (prefers-reduced-motion: reduce){.snow,.petals{display:none}}

/* RÉCENT vs detail on short / wide screens */
.detail{z-index:7}


/* ================= v3 · cadre — RÉCENT square frame ================= */
.recent{position:absolute;left:clamp(6px,1.2vw,22px);bottom:clamp(10px,2vh,22px);top:auto;z-index:11;
  width:clamp(112px,8.4vw,138px);aspect-ratio:1/1;padding:12px 11px 10px;display:flex;flex-direction:column;
  background:linear-gradient(160deg,#fff 0%,rgba(244,248,253,.96) 100%);border:1px solid rgba(27,42,72,.55);
  outline:1px solid var(--frostline);outline-offset:4px;transform:rotate(-3deg);
  box-shadow:0 0 0 1px #fff inset,0 0 0 7px rgba(255,255,255,.6),0 16px 28px -16px rgba(60,90,140,.6)!important}
.recent::before{content:"";position:absolute;inset:5px;border:1px dashed rgba(61,84,128,.28);pointer-events:none}
.recent .r-tape{position:absolute;top:-10px;left:50%;width:56px;height:16px;margin-left:-28px;transform:rotate(4deg);
  background:rgba(143,176,216,.6);-webkit-mask:linear-gradient(90deg,transparent 0 3px,#000 3px calc(100% - 3px),transparent 0)}
.recent b{align-self:flex-start;display:inline-block;background:var(--ink);color:#fff;font-family:var(--mono);font-size:9.5px;font-weight:500;letter-spacing:1.5px;padding:2px 6px}
.recent .r-fr{font-family:var(--script);font-size:15px;line-height:1.1;color:var(--ink2);margin-top:4px;float:none;padding:0}
.recent .r-date{font-family:var(--latin);font-style:italic;font-size:26px;line-height:1;color:var(--ink);margin-top:auto;float:none;padding:0;letter-spacing:1px}
.recent p{font-size:11.5px;font-weight:600;line-height:1.35;padding:4px 0 0;margin-top:4px;border-top:1px solid rgba(27,42,72,.25);
  white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.recent .r-flake{position:absolute;right:9px;top:9px;font-style:normal;font-size:13px;color:#9fb3d1}
.recent.fade{transform:rotate(-3deg) translateY(8px)!important}


/* ================= v3 · cadre fillers — winter collage stickers ================= */
.fillers{position:absolute;inset:0;pointer-events:none;z-index:12}
.fillers .fill{position:absolute;pointer-events:none;transition:transform .8s var(--ease),opacity .9s var(--ease),translate .9s var(--ease)}
.fillers .card-fill{padding:8px 8px 24px;background:#fff;border:1px solid rgba(27,42,72,.35);
  box-shadow:0 0 0 1px var(--frost) inset,0 0 0 3px rgba(255,255,255,.55),0 16px 28px -16px rgba(60,90,140,.55)}
.fillers .card-fill svg{display:block;width:100%}
.fillers .card-fill figcaption{position:absolute;bottom:3px;right:10px;font-family:var(--script);font-size:16px;color:var(--ink2)}
.fillers .card-fill .tape{position:absolute;width:64px;height:16px;
  -webkit-mask:linear-gradient(90deg,transparent 0 3px,#000 3px calc(100% - 3px),transparent 0)}
.fillers .card-fill .tape.t-blue{top:-8px;left:36%;transform:rotate(-7deg);background:rgba(143,176,216,.6)}
.fillers .card-fill .tape.t-pink{top:-8px;right:18%;transform:rotate(8deg);background:rgba(238,182,195,.55)}
.fillers .sticker{filter:drop-shadow(0 0 0 #fff) drop-shadow(0 6px 10px rgba(27,42,72,.25))}
.fillers .sticker svg{display:block;width:100%;background:#fff;border-radius:50%;padding:3px}
.fillers .sticker span{position:absolute;bottom:-16px;left:8px;font-size:10px;letter-spacing:1.5px;color:var(--ink2);font-family:var(--serif);white-space:nowrap}

/* 1 · between left collage & compass — lifted up-left clear of RÉCENT */
.fillers .snowpath{left:clamp(20%,22vw,26%);top:clamp(32%,36vh,42%);width:min(118px,8.5vw);transform:rotate(4.5deg);z-index:6}
.fillers .topo-chip{left:clamp(17.5%,19.5vw,23.5%);top:clamp(27%,31vh,37%);width:min(70px,5vw);transform:rotate(-14deg);z-index:7}
.fillers .topo-chip span{display:none}

/* 2 · between compass & results — conifer dropped below lattice */
.fillers .lattice-b{left:clamp(69.2%,70.2vw,72.5%);top:clamp(28%,32vh,38%);width:min(84px,6.2vw);transform:rotate(10deg);z-index:6}
.fillers .conifer-strip{left:clamp(70.5%,71.6vw,74%);top:clamp(54%,58vh,64%);width:min(90px,6.6vw);transform:rotate(-5deg);z-index:6}
.fillers .conifer-strip figcaption{display:none}

/* 3 · left of huge char 「竞」 (stay in center→right gap) */
.fillers .gate-stamp{left:clamp(70%,71.2vw,73.5%);right:auto;top:clamp(8%,10.5vh,78px);width:min(92px,6.6vw);transform:rotate(-8deg);z-index:10}

body.intro .fillers .fill{opacity:0;translate:0 -24px}

@media (max-width:1180px){
  .fillers .topo-chip,.fillers .conifer-strip{display:none}
  .fillers .snowpath{width:min(110px,10vw)}
  .fillers .lattice-b{width:min(78px,7vw)}
  .fillers .gate-stamp{width:min(86px,7.5vw)}
}
@media (max-height:700px){
  .fillers .topo-chip{display:none}
  .fillers .snowpath{top:34%;width:min(108px,9vw)}
  .fillers .conifer-strip{top:56%;width:min(82px,6.5vw)}
}
@media (max-width:980px){
  .fillers{display:none}
}

/* ===== v3.1 content: scrollable list, external links, essay quote layout ===== */
.results{display:flex;flex-direction:column}
#list{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:rgba(27,42,72,.35) transparent}
#list::-webkit-scrollbar{width:4px}#list::-webkit-scrollbar-thumb{background:rgba(27,42,72,.35)}
#list li.on::after{right:2px}
#list li.ext time{color:var(--ink)}
#list li.m-paper h4{font-family:var(--latin,serif);font-weight:500;letter-spacing:.2px}
#list li.m-firm h4{font-family:var(--latin,serif);letter-spacing:1.5px;text-transform:none}
#list li.m-firm time{font-size:10px;letter-spacing:1px}
#list li.m-essay h4::before{content:"「";color:var(--pink-d,#c76b86)}
#list li.m-essay h4::after{content:"」";color:var(--pink-d,#c76b86)}
.d-src{font-family:var(--mono);font-size:9.5px;letter-spacing:.4px;color:#7a88a3;padding:0 12px 9px;margin-top:-6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.d-src:empty{display:none}
.detail[data-mode="essay"] h3{font-family:var(--serif);font-weight:600}
.detail[data-mode="essay"] #dText{-webkit-line-clamp:3;position:relative;padding-left:26px;font-family:var(--serif);font-size:12.5px;color:var(--ink)}
.detail[data-mode="essay"] #dText::before{content:"“";position:absolute;left:10px;top:-6px;font-family:var(--latin,serif);font-size:30px;line-height:1;color:var(--pink-d,#c76b86)}
.detail[data-mode="essay"] #dText q{quotes:none}
.detail[data-mode="essay"] #dText .orig{display:block;font-family:var(--latin,serif);font-style:italic;font-size:11px;color:#6b7896;margin-top:1px}
.detail[data-mode="essay"] .d-src{font-family:var(--serif);font-style:italic;font-size:10.5px;text-align:right}
.detail[data-mode="firm"] h3{font-family:var(--latin,serif);letter-spacing:2px}
.detail[data-mode="paper"] h3{font-family:var(--latin,serif);font-size:14px;font-weight:500;letter-spacing:.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ================= v3.2 · contact / CV panels — winter notebook ================= */
.tag{text-decoration:none}
.tag-panel.on{background:var(--ink)}
.tag-panel.on svg{stroke:#fff}
.panel-wrap{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:max(16px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom));
  opacity:0;transition:opacity .3s var(--ease)}
.panel-wrap[hidden]{display:none}
.panel-wrap.show{opacity:1}
.panel-back{position:absolute;inset:0;background:rgba(190,206,228,.55);backdrop-filter:blur(7px) saturate(.9);-webkit-backdrop-filter:blur(7px)}
.panel{position:relative;width:min(560px,100%);max-height:calc(100dvh - 40px);overflow:auto;overscroll-behavior:contain;
  padding:26px 30px 24px;color:var(--ink);transform:rotate(-1.2deg) translateY(18px) scale(.97);transition:transform .55s var(--ease);
  background:
    radial-gradient(circle at 1px 1px,rgba(61,84,128,.18) 1px,transparent 1.2px) 0 0/16px 16px,
    linear-gradient(160deg,#fff 0%,#f4f8fd 100%);
  border:1px solid rgba(27,42,72,.55);outline:1px solid var(--frostline);outline-offset:5px;
  box-shadow:0 0 0 1px #fff inset,0 0 0 9px rgba(255,255,255,.62),0 30px 60px -28px rgba(50,80,130,.7)}
.panel-wrap.show .panel{transform:rotate(-1.2deg)}
.panel::before{content:"";position:absolute;inset:8px;border:1px dashed rgba(61,84,128,.28);pointer-events:none}
/* airmail edge */
.panel::after{content:"";position:absolute;left:0;right:0;bottom:0;height:6px;
  background:repeating-linear-gradient(-45deg,rgba(143,176,216,.85) 0 10px,transparent 10px 16px,rgba(238,182,195,.85) 16px 26px,transparent 26px 32px)}
.ptape{position:absolute;width:84px;height:20px;z-index:2;-webkit-mask:linear-gradient(90deg,transparent 0 3px,#000 3px calc(100% - 3px),transparent 0)}
.p-t1{top:-6px;left:28px;transform:rotate(-7deg);background:rgba(143,176,216,.62)}
.p-t2{top:-6px;right:70px;transform:rotate(6deg);background:rgba(238,182,195,.58)}
.p-close{position:absolute;top:14px;right:14px;z-index:3;width:34px;height:34px;border-radius:50%;border:1px solid var(--ink);background:rgba(255,255,255,.9);
  font:22px/1 var(--latin);color:var(--ink);cursor:pointer;transition:background .25s,color .25s}
.p-close:hover,.p-close:focus-visible{background:var(--ink);color:#fff;outline:none}
.p-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding-right:40px}
.p-chip{background:var(--ink);color:#fff;font-family:var(--mono);font-size:10.5px;letter-spacing:2px;padding:4px 10px}
.p-chip b{background:var(--pink);color:var(--ink);padding:0 4px;font-weight:500}
.p-script{font-family:var(--script);font-size:26px;line-height:1;color:var(--ink2)}
.panel h2{margin-top:14px;font-size:clamp(28px,6.5vw,36px);font-weight:500;letter-spacing:8px;line-height:1.15;display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}
.panel h2 small{font-family:var(--latin);font-style:italic;font-weight:400;font-size:clamp(18px,4.6vw,22px);letter-spacing:1px;color:var(--ink2)}
.panel h2 .name-zh{font-weight:400;letter-spacing:10px;color:var(--ink)}
.p-role{margin-top:6px;font-family:var(--mono);font-size:11px;letter-spacing:1.4px;color:var(--ink2)}
.p-role span{font-family:var(--serif);font-size:13px;color:var(--ink);font-weight:600;letter-spacing:2px}
.p-role i{font-family:var(--latin);font-size:14px;letter-spacing:.5px}
.p-rows{list-style:none;margin-top:18px;border-top:1px solid rgba(27,42,72,.35);position:relative;z-index:1}
.p-rows li{display:grid;grid-template-columns:72px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:54px;padding:6px 0;border-bottom:1px dashed rgba(27,42,72,.3)}
.p-rows .k{font-family:var(--mono);font-size:10.5px;letter-spacing:1.5px;line-height:1.25}
.p-rows .k em{display:block;font-style:normal;font-family:var(--serif);font-size:11px;letter-spacing:2px;color:var(--ink2)}
.p-rows .v{font-family:var(--latin);font-size:clamp(18px,4.6vw,22px);font-weight:500;color:var(--ink);text-decoration:none;letter-spacing:.5px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:linear-gradient(transparent 62%,rgba(143,176,216,.35) 62%) no-repeat 0 0/0 100%;transition:background-size .4s var(--ease)}
.p-rows .v:hover,.p-rows .v:focus-visible{background-size:100% 100%;outline:none}
.p-rows li:last-child .v{font-family:var(--serif);font-size:15px;letter-spacing:2px}
.cp{font-family:var(--serif);font-size:11px;letter-spacing:1px;min-width:52px;min-height:32px;padding:4px 10px;border:1px solid var(--ink);background:#fff;color:var(--ink);cursor:pointer;transition:background .25s,color .25s}
.cp:hover{background:var(--ink);color:#fff}
.cp.ghost{border:0;background:none;text-align:center;color:#9fb3d1;cursor:default;font-size:14px}
.p-note{margin-top:14px;padding-right:96px;font-size:12px;line-height:1.7;letter-spacing:.6px;color:#33415e;position:relative;z-index:1}
.p-stamp{position:absolute;right:20px;bottom:18px;width:92px;transform:rotate(-12deg);opacity:.85;pointer-events:none}
.p-sprig{position:absolute;right:-8px;top:46px;width:90px;opacity:.16;pointer-events:none}
/* CV */
.cv-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}
.cv-sec{position:relative;background:rgba(255,255,255,.82);border:1px solid rgba(27,42,72,.35);padding:10px 12px 12px;box-shadow:3px 3px 0 rgba(27,42,72,.08)}
.cv-sec:nth-child(odd){transform:rotate(-.6deg)}.cv-sec:nth-child(even){transform:rotate(.7deg)}
.cv-sec h5{font-size:13px;font-weight:600;letter-spacing:2px}
.cv-sec h5 b{font-family:var(--mono);font-size:10px;font-weight:500;background:var(--ink);color:#fff;padding:1px 5px;margin-right:4px}
.cv-sec h5 i{font-family:var(--latin);font-weight:400;font-size:14px;color:var(--ink2);letter-spacing:.5px}
.cv-sec .todo{margin-top:8px;font-size:12px;color:#7a88a3;letter-spacing:.5px;padding-bottom:6px;
  background:repeating-linear-gradient(transparent 0 21px,rgba(61,84,128,.18) 21px 22px);min-height:46px;line-height:22px}
.cv-foot{display:flex;align-items:center;gap:14px;margin-top:18px;flex-wrap:wrap}
.cv-pdf{font-family:var(--serif);font-size:13px;letter-spacing:2px;padding:9px 16px;background:var(--ink);color:#fff;text-decoration:none;cursor:pointer}
.cv-pdf[aria-disabled]{background:repeating-linear-gradient(-45deg,#e9eef6 0 6px,#fff 6px 12px);color:var(--ink2);border:1px dashed var(--ink2);cursor:not-allowed}
.cv-back{font-family:var(--latin);font-style:italic;font-size:17px;color:var(--ink);text-decoration:none;border-bottom:1px solid rgba(27,42,72,.4)}
.cv-stamp{position:absolute;right:24px;bottom:22px;transform:rotate(-10deg);border:1.5px solid #c76b86;color:#c76b86;font-family:var(--mono);font-size:13px;letter-spacing:3px;
  padding:6px 10px;text-align:center;line-height:1.2;opacity:.8;pointer-events:none}
.cv-stamp small{display:block;font-family:var(--serif);font-size:10px;letter-spacing:2px}
body.panel-open .snow{z-index:41}

/* ================= v3.2 · mobile ================= */
@media (max-width:768px), (orientation:landscape) and (max-height:520px) and (max-width:1000px){
  html,body{height:auto;overflow-x:hidden;overflow-y:auto;-webkit-text-size-adjust:100%}
  body.panel-open{overflow:hidden}
  #viewport{position:relative;inset:auto;overflow:visible;min-height:100dvh}
  #stage{position:relative;inset:auto;width:100%;height:auto;min-height:100dvh;overflow:visible;display:flex;flex-direction:column;
    padding:max(12px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) calc(84px + env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left))}
  .sky,.contour-bg,.grain,.snow,.petals{position:fixed}
  #stage::after{position:fixed}
  .fillers,.collage,.keybar,.ghost-num,.pavilion-bg,.big-num,.recent,.char-row,.res-sub .hint,.searchbar kbd,.d-meta .enter{display:none!important}

  /* tags → bottom hanging rail */
  .tags{position:fixed;left:0;right:0;top:auto;bottom:0;width:auto;height:calc(68px + env(safe-area-inset-bottom));flex-direction:row;justify-content:space-around;align-items:flex-start;
    padding:0 max(6px,env(safe-area-inset-left)) env(safe-area-inset-bottom);z-index:30;
    background:linear-gradient(rgba(240,245,251,.86),rgba(250,252,255,.96));backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-top:1px solid rgba(27,42,72,.35)}
  .tags::before{left:0;right:0;top:6px;bottom:auto;width:auto;height:1px;background:linear-gradient(90deg,rgba(61,84,128,.2),var(--ink2),rgba(61,84,128,.2))}
  .tag{width:40px;height:54px;margin-top:6px;flex:none}
  .tag svg{width:20px;height:20px}
  .tag:hover{transform:none}
  .tag:active{transform:rotate(-6deg) translateY(2px)}
  .tag-tassel{display:none}

  /* title */
  .col{grid-row:auto}
  .col-left{order:1;padding-top:4px}
  .title-block{height:auto;display:grid;grid-template-columns:auto 1fr;column-gap:12px;align-items:end}
  .label-chip,.title-block h1,.title-block .sub,.title-block .by{left:0;top:0}
  .label-chip{grid-column:1/-1;justify-self:start;font-size:10px}
  .title-block h1{font-size:44px;letter-spacing:4px;margin-top:6px}
  .title-block .sub{font-size:9px;letter-spacing:.8px;white-space:normal;align-self:center;margin-top:8px}
  .title-block .by{grid-column:1/-1;display:block!important;font-size:14px;margin-top:2px}
  .by-zh{display:none!important}
  /* panel names: keep Chinese visible (not .by-zh); Chinese first already in markup */
  #pcName .name-zh,#cvName .name-zh{display:inline!important}
  #pcName,#cvName{gap:10px}
  #pcName .name-zh,#cvName .name-zh{font-size:inherit;letter-spacing:inherit}

  /* center column */
  .center{order:2;width:100%;padding-top:10px;z-index:8}
  .script-head{font-size:26px}
  .searchbar{width:100%;height:44px;margin-top:8px}
  .searchbar input{font-size:16px}
  .searchbar .script{font-size:19px}
  .tabs{width:100%;justify-content:space-between;gap:4px;margin-top:8px}
  .tabs button{flex:1;min-height:40px;font-size:13px;padding:6px 4px;border:1px solid rgba(27,42,72,.25);background:rgba(255,255,255,.6)}
  .tabs button.on::after{content:""}
  .compass-slot{flex:none;height:min(calc(100vw - 4px),380px);margin-top:4px;touch-action:pan-y}
  .compass{top:50%}
  .rot-btn{width:40px;height:40px;top:180px;font-size:22px}
  .rot-btn.prev{left:-34px}.rot-btn.next{right:-34px}
  .pager{right:auto;left:50%;top:auto;bottom:-4px;transform:translateX(-50%)}
  .detail{position:relative;left:auto;bottom:auto;transform:none;width:100%;margin-top:6px}
  .detail p{-webkit-line-clamp:4}
  .detail[data-mode="paper"] h3{white-space:normal}
  .d-src{white-space:normal;word-break:break-all}

  /* right column → list */
  .right{order:3;padding:14px 0 0;display:block}
  .right-head{align-self:auto;text-align:left;display:flex;align-items:baseline;justify-content:space-between;gap:8px;flex-wrap:wrap}
  .date-row{justify-content:flex-start;gap:8px}
  .big-date{font-size:26px}
  .date-sub{margin-top:0;font-size:9.5px;letter-spacing:1px}
  .results{margin-top:12px;max-height:none}
  #list{max-height:none;overflow:visible}
  #list li{grid-template-columns:30px minmax(0,1fr) auto;gap:10px;padding:12px 12px;min-height:56px}
  #list li h4{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:14px;line-height:1.35}
  #list li.on::after{display:none}
  #list li{animation:none}

  .toast{position:fixed;top:max(12px,env(safe-area-inset-top));max-width:calc(100vw - 28px);white-space:normal;text-align:center}

  .panel-wrap{place-items:end center;padding:max(12px,env(safe-area-inset-top)) 10px calc(10px + env(safe-area-inset-bottom))}
  .panel{padding:24px 18px 22px;max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));transform:translateY(40px);outline-offset:3px}
  .panel-wrap.show .panel{transform:rotate(-.6deg)}
  .p-rows li{grid-template-columns:56px minmax(0,1fr) auto;gap:8px}
  .p-note{padding-right:0;padding-bottom:70px}
  .p-stamp{width:74px;right:14px;bottom:14px}
  .cv-grid{grid-template-columns:1fr}
  .cv-foot{padding-bottom:52px}
  .cv-stamp{right:16px;bottom:16px}
}
/* landscape phones: put compass beside detail */
@media (orientation:landscape) and (max-height:520px) and (max-width:1000px){
  .center{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:16px;align-items:start}
  .script-head,.searchbar,.tabs{grid-column:1/-1}
  .compass-slot{grid-column:1;height:300px}
  .detail{grid-column:2;margin-top:24px}
  .panel-wrap{place-items:center}
}
.p-rows .v{font-variant-numeric:lining-nums;font-feature-settings:"lnum" 1}
.p-grade{font-family:var(--mono)!important;font-size:11px!important;font-weight:500!important;letter-spacing:1px!important;background:var(--pink);padding:1px 5px}
.p-labels{display:flex;flex-wrap:wrap;gap:8px 10px;margin-top:12px}
.p-labels span{position:relative;font-size:12px;letter-spacing:2px;padding:4px 12px;color:var(--ink);background:rgba(143,176,216,.42);
  -webkit-mask:linear-gradient(90deg,transparent 0 3px,#000 3px calc(100% - 3px),transparent 0)}
.p-labels span:nth-child(1){transform:rotate(-2deg);background:rgba(238,182,195,.55)}
.p-labels span:nth-child(3){transform:rotate(1.6deg);background:rgba(214,226,242,.9)}
.p-motto{margin-top:12px;font-size:13px;letter-spacing:1px;line-height:1.6;color:var(--ink)}
.p-motto i{display:block;font-family:var(--latin);font-size:15px;color:var(--ink2);letter-spacing:.3px}
@media (orientation:landscape) and (max-height:520px) and (max-width:1000px){
  #stage{padding-bottom:calc(60px + env(safe-area-inset-bottom))}
  .tags{height:calc(52px + env(safe-area-inset-bottom))}
  .tag{width:36px;height:42px;margin-top:5px}
  .tag svg{width:18px;height:18px;margin-top:8px}
  .title-block h1{font-size:34px}
}

.cv-list{list-style:none;margin:8px 0 0;padding:0;font-size:12.5px;line-height:1.75;color:var(--ink)}
.cv-list li{position:relative;padding-left:13px;border-bottom:1px dashed rgba(27,42,72,.18)}
.cv-list li:before{content:"❄";position:absolute;left:0;font-size:8px;top:2px;color:var(--ink2)}
.cv-list em{font-style:normal;font-family:var(--mono);font-size:11px;color:#c76b86}
.cv-list i{font-family:var(--latin);color:var(--ink2)}
.cv-dream{color:#c76b86;transform:rotate(-1deg);white-space:nowrap;font-size:12px}
