:root{--paper: #f4f0e8;--ink: #141414;--dim: #565550;--pink: #ff2d87;--yellow: #ffd23f;--blue: #3a86ff;--green: #06d6a0;--orange: #ff9f1c;--purple: #9b5de5;--card: #ffffff;--bd: 3px solid var(--ink);--sh: 6px 6px 0 var(--ink);--sh-sm: 4px 4px 0 var(--ink);--font-sans: "PingFang SC", "Noto Sans SC", "Microsoft YaHei", system-ui, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;background:var(--paper);color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;overflow-x:clip}body{overflow-x:clip}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}::selection{background:var(--pink);color:#fff}.wrap{width:min(1200px,92vw);margin:0 auto}.nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:.8rem min(4vw,3rem);background:#f4f0e8eb;backdrop-filter:blur(10px);border-bottom:3px solid var(--ink)}.nav-logo{display:inline-block;background:var(--ink);color:var(--paper);font-weight:900;letter-spacing:.08em;font-size:.95rem;padding:.3rem .8rem;box-shadow:4px 4px 0 var(--pink)}.nav-links{display:flex;gap:.4rem;font-size:.88rem;font-weight:800}.nav-links a{padding:.35rem .8rem;border:3px solid transparent;transition:all .15s}.nav-links a:hover{border-color:var(--ink);background:var(--card);box-shadow:3px 3px 0 var(--ink)}.nav-links a.active{background:var(--pink);color:#fff;border-color:var(--ink);box-shadow:3px 3px 0 var(--ink)}.nav-toggle{display:none;background:var(--card);border:var(--bd);box-shadow:var(--sh-sm);color:var(--ink);font-size:1.2rem;cursor:pointer;padding:.2rem .7rem}html.js-reveal .reveal{opacity:0;transform:translateY(34px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);will-change:opacity,transform}html.js-reveal .reveal.in{opacity:1;transform:none}@media (prefers-reduced-motion: reduce){html.js-reveal .reveal{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}.story{height:560vh;position:relative}.story-pin{position:sticky;top:0;height:100vh;overflow:hidden;display:grid;place-items:center;perspective:1200px}.beat{grid-area:1 / 1;text-align:center;padding:0 6vw;opacity:0;transform:rotateX(-70deg) scale(.7);will-change:transform,opacity;backface-visibility:hidden}.beat:first-child{opacity:1}.beat-q{font-size:clamp(1.7rem,4.6vw,3.4rem);font-weight:900}.beat-name{font-size:clamp(3.4rem,15vw,12.5rem);font-weight:900;line-height:1.08;letter-spacing:.02em}.beat-name .hl{background:linear-gradient(transparent 60%,var(--pink) 60%);padding:0 .08em}.beat-major{display:inline-block;font-size:clamp(2.2rem,8.5vw,6.8rem);font-weight:900;background:var(--ink);color:var(--card);padding:.12em .3em;box-shadow:10px 10px 0 var(--pink)}.beat-chips{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:.5rem}.bchip{background:var(--card);border:var(--bd);box-shadow:var(--sh-sm);padding:.45rem 1.1rem;font-weight:900;font-size:clamp(1rem,2.4vw,1.5rem)}.bchip.pink{background:var(--pink);color:#fff}.beat-desc{margin-top:1.5rem;font-weight:700;color:var(--dim);font-size:clamp(.95rem,1.9vw,1.2rem)}.story-hint{position:absolute;bottom:3.5vh;left:50%;transform:translate(-50%);font-weight:900;letter-spacing:.35em;font-size:.72rem;color:var(--dim);animation:hint 2s ease-in-out infinite}@keyframes hint{0%,to{opacity:.4;transform:translate(-50%)}50%{opacity:1;transform:translate(-50%,8px)}}.section{padding:13vh 0;border-top:3px solid var(--ink)}.sec-eyebrow{display:inline-block;background:var(--ink);color:var(--paper);font-size:.75rem;font-weight:900;letter-spacing:.3em;padding:.35rem .9rem;box-shadow:4px 4px 0 var(--pink);margin-bottom:1.5rem}.sec-title{font-size:clamp(2.2rem,6vw,4.5rem);font-weight:900;line-height:1.15}.sec-sub{margin-top:1.3rem;color:var(--dim);max-width:40em;line-height:1.9;font-weight:500}.tags{display:flex;flex-wrap:wrap;gap:1rem;margin-top:2.4rem}.tag{background:var(--card);border:var(--bd);box-shadow:var(--sh-sm);padding:.55rem 1.3rem;font-weight:900;font-size:clamp(1rem,2vw,1.25rem);transition:transform .15s,box-shadow .15s}.tag:hover{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--ink)}.tag.pink{background:var(--pink);color:#fff}.timeline{margin-top:4.5rem;position:relative}.timeline:before{content:"";position:absolute;left:7px;top:4px;bottom:0;width:4px;background:var(--ink)}.tl-item{position:relative;padding:0 0 3.6rem 3rem}.tl-item:before{content:"";position:absolute;left:0;top:4px;width:18px;height:18px;background:var(--pink);border:3px solid var(--ink);box-shadow:3px 3px 0 var(--ink)}.tl-time{display:inline-block;background:var(--ink);color:var(--paper);font-size:.8rem;font-weight:800;letter-spacing:.15em;padding:.15rem .6rem;margin-bottom:.7rem}.tl-title{font-size:clamp(1.3rem,2.6vw,1.9rem);font-weight:900}.tl-tag{display:inline-block;margin-left:.7rem;font-size:.72rem;font-weight:900;letter-spacing:.1em;color:#fff;background:var(--pink);border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink);padding:.12rem .55rem;vertical-align:middle}.tl-desc{margin-top:.8rem;color:var(--dim);line-height:1.85;max-width:46em;font-weight:500}.tl-result{display:inline-block;margin-top:1rem;font-size:.92rem;font-weight:700;background:var(--yellow);border:3px solid var(--ink);box-shadow:var(--sh-sm);padding:.4rem .9rem}.int-grid,.comm-grid,.works-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2.4rem;margin-top:4.5rem}.card3d{background:var(--card);border:var(--bd);box-shadow:var(--sh);transition:transform .18s,box-shadow .18s}.card3d:hover{transform:translate(-4px,-4px);box-shadow:10px 10px 0 var(--ink)}.cover{position:relative;border-bottom:3px solid var(--ink);aspect-ratio:16 / 9;overflow:hidden;display:grid;place-items:center}.cover .glyph{font-size:clamp(3.4rem,7vw,5.6rem);font-weight:900;color:#ffffffd9;text-shadow:4px 4px 0 rgba(0,0,0,.25);letter-spacing:.04em}.cover .corner{position:absolute;top:.7rem;left:.7rem;background:var(--ink);color:var(--paper);font-size:.7rem;font-weight:900;letter-spacing:.2em;padding:.15rem .55rem;z-index:2}#interests .cover,#communities .cover{aspect-ratio:4 / 3}.cover picture,.cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.cover img{transition:transform .6s cubic-bezier(.16,1,.3,1);will-change:transform}.card3d:hover .cover img{transform:scale(1.05)}.int-info,.comm-info,.work-body{padding:1.4rem 1.5rem 1.6rem}.int-info h3,.comm-info h3{font-size:clamp(1.25rem,2.2vw,1.6rem);font-weight:900}.int-info p,.comm-info p{margin-top:.5rem;color:var(--dim);font-size:.92rem;line-height:1.75;font-weight:500}.comm-role{display:inline-block;margin-left:.5rem;font-size:.72rem;font-weight:900;color:#fff;background:var(--ink);padding:.12rem .5rem;vertical-align:middle}.work-role{display:inline-block;font-size:.72rem;font-weight:900;letter-spacing:.15em;color:#fff;background:var(--ink);padding:.15rem .6rem}.work-body h3{margin-top:.7rem;font-size:1.4rem;font-weight:900}.work-body p{margin-top:.6rem;color:var(--dim);font-size:.92rem;line-height:1.75;font-weight:500}.work-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.work-tags span{font-size:.74rem;font-weight:800;border:2px solid var(--ink);background:var(--paper);padding:.15rem .65rem}.btn{display:inline-block;margin-top:1.3rem;font-size:.85rem;font-weight:900;color:#fff;background:var(--pink);border:3px solid var(--ink);box-shadow:var(--sh-sm);padding:.45rem 1.1rem;transition:transform .15s,box-shadow .15s}.btn:hover{transform:translate(3px,3px);box-shadow:1px 1px 0 var(--ink)}.wall-tabs{display:flex;flex-wrap:wrap;gap:.9rem;margin:3rem 0 2.6rem}.wall-tab{border:var(--bd);box-shadow:var(--sh-sm);background:var(--card);color:var(--ink);padding:.5rem 1.3rem;font-size:.9rem;font-weight:900;cursor:pointer;font-family:inherit;transition:transform .15s,box-shadow .15s,background .15s}.wall-tab:hover{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--ink)}.wall-tab.active{background:var(--pink);color:#fff}.wall-list{display:grid;grid-template-columns:repeat(3,1fr);gap:1.8rem}.wall-item{display:none;flex-direction:column;gap:.75rem;background:var(--card);border:var(--bd);box-shadow:var(--sh);padding:1.4rem;transition:transform .18s,box-shadow .18s}.wall-item.show{display:flex}.wall-item:hover{transform:translate(-3px,-3px);box-shadow:9px 9px 0 var(--ink)}.wall-item .w-meta{display:flex;justify-content:space-between;align-items:center;font-size:.72rem;font-weight:800;color:var(--dim)}.wall-item .w-cat{background:var(--ink);color:var(--paper);padding:.12rem .55rem;font-weight:900}.wall-item .w-pic{border:3px solid var(--ink);overflow:hidden}.wall-item .w-pic img{width:100%;height:auto;display:block}.wall-item h3{font-size:1.05rem;font-weight:900;line-height:1.5}.wall-item p{color:var(--dim);font-size:.86rem;line-height:1.7;font-weight:500}.wall-item .w-foot{margin-top:auto;display:flex;gap:1.1rem;font-size:.78rem;font-weight:700;color:var(--dim);padding-top:.8rem;border-top:3px solid var(--ink)}.wall-note{margin-top:3rem;color:var(--dim);font-size:.85rem;font-weight:600}.footer{background:var(--ink);color:var(--paper);border-top:6px solid var(--pink);padding:5rem 0 3.5rem;text-align:center}.footer .f-big{font-size:clamp(1.6rem,4vw,3rem);font-weight:900}.footer .f-big .hl{background:linear-gradient(transparent 60%,var(--pink) 60%)}.footer .f-dim{margin-top:1.1rem;color:#b9b7ae;font-size:.85rem;font-weight:600}@media (max-width: 860px){.nav-toggle{display:block}.nav-links{position:fixed;inset:55px 0 auto;flex-direction:column;gap:0;background:var(--paper);border-bottom:3px solid var(--ink);padding:.4rem 0;max-height:0;overflow:hidden;transition:max-height .35s ease}.nav-links.open{max-height:340px}.nav-links a{padding:.9rem 6vw;border:none}.nav-links a:hover{box-shadow:none;background:var(--card)}.int-grid,.comm-grid,.works-grid,.wall-list{grid-template-columns:1fr}.story{height:500vh}}.story{height:calc(var(--beats, 6) * 93.3vh)}@media (max-width: 860px){.story{height:calc(var(--beats, 6) * 83.3vh)}}.media-empty{display:grid;place-items:center;width:100%;height:100%;color:var(--dim);font-weight:900;letter-spacing:.25em;font-size:.78rem;background:repeating-linear-gradient(-45deg,var(--paper) 0 14px,rgba(0,0,0,.045) 14px 28px)}.contact-tags{margin-top:1.2rem}.contact-tags .tag{font-size:clamp(.9rem,1.7vw,1.05rem)}.footer-cols{display:flex;gap:clamp(2rem,6vw,5rem);justify-content:center;flex-wrap:wrap;margin-bottom:2.6rem;text-align:left}.footer-cols h4{font-size:.78rem;letter-spacing:.25em;color:var(--pink);margin-bottom:.8rem;font-weight:900}.footer-cols a{display:block;color:#b9b7ae;font-size:.9rem;font-weight:600;padding:.2rem 0}.footer-cols a:hover{color:var(--paper)}.nav{background:color-mix(in srgb,var(--paper) 92%,transparent)}
