:root{font-family:Noto Sans SC,PingFang SC,sans-serif;font-synthesis:none;background:#d7c2a3;color:#26241f}*{box-sizing:border-box}html,body,#root{width:100%;min-width:320px;min-height:100%;margin:0}body{min-height:100vh;overflow:hidden;-webkit-font-smoothing:antialiased}button,a{font:inherit}button{cursor:pointer}.shell{--ink:#26241f;--paper:rgba(244,237,223,.94);--solid:#f3ead9;--muted:#746c60;--line:rgba(51,43,34,.15);--accent:#c35e36;position:relative;width:100vw;height:100dvh;overflow:hidden;background:#d7c2a3;color:var(--ink);transition:.35s}.shell.night{--ink:#f2eadc;--paper:rgba(38,40,40,.94);--solid:#292b2a;--muted:#bcb3a6;--line:rgba(255,255,255,.12);--accent:#e17c50;background:#3f4650}.scene{position:absolute;top:0;right:0;bottom:0;left:0}.scene canvas{display:block;width:100%;height:100%}header{position:absolute;z-index:20;inset:22px 28px auto;display:flex;justify-content:space-between;align-items:flex-start;pointer-events:none}header button{pointer-events:auto}.brand{display:flex;align-items:center;gap:11px;border:0;background:transparent;color:var(--ink);padding:0;text-align:left}.brand>span{display:grid;place-items:center;width:48px;height:48px;border:1px solid var(--line);border-radius:15px;background:var(--paper);box-shadow:0 12px 30px #2a1f171f;font:700 15px Playfair Display,serif;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.brand div{display:grid;gap:2px}.brand b{font-size:16px;letter-spacing:.08em}.brand small{font-size:9px;font-weight:700;letter-spacing:.14em;opacity:.7}.actions{display:flex;gap:8px}.actions button{min-height:43px;display:flex;align-items:center;gap:8px;padding:0 15px;border:1px solid var(--line);border-radius:14px;background:var(--paper);color:var(--ink);box-shadow:0 12px 30px #2a1f171a;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.actions svg{width:19px;height:19px}.intro{position:absolute;z-index:15;left:48px;bottom:108px;width:min(450px,calc(100vw - 64px));padding:30px 32px 32px;border:1px solid var(--line);border-radius:28px;background:var(--paper);box-shadow:0 24px 80px #32241838;-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);animation:cardIn .65s cubic-bezier(.2,.8,.2,1) both}@keyframes cardIn{0%{opacity:0;transform:translateY(20px)}}.intro>span{position:absolute;right:28px;top:28px;color:var(--muted);font-size:11px;letter-spacing:.15em}.intro>p,.eyebrow{margin:0 0 14px;color:var(--accent);font-size:10px;font-weight:700;letter-spacing:.18em}.intro h1{margin:0 0 18px;font:700 clamp(32px,4.2vw,54px)/.98 "Playfair Display","Noto Serif SC",serif;letter-spacing:-.045em}.intro>div{margin:0 0 24px;color:var(--muted);font-size:14px;line-height:1.8}.intro button{display:inline-flex;align-items:center;gap:9px;border:0;border-radius:999px;padding:13px 19px;color:#fff8ed;background:#292a27;font-weight:600;box-shadow:0 12px 26px #1e1b162e}.hint{position:absolute;z-index:12;left:50%;bottom:92px;transform:translate(-50%);display:flex;align-items:center;gap:8px;padding:10px 14px;border:1px solid var(--line);border-radius:999px;background:var(--paper);font-size:11px;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);pointer-events:none}.hint svg{width:18px;height:18px}.dock{position:absolute;z-index:25;left:50%;bottom:22px;transform:translate(-50%);display:flex;gap:5px;padding:6px;border:1px solid var(--line);border-radius:19px;background:var(--paper);box-shadow:0 18px 50px #2f21182e;-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px)}.dock button{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 13px;border:0;border-radius:13px;color:var(--muted);background:transparent;white-space:nowrap;transition:.2s}.dock button:hover{color:var(--ink);background:#805b3917;transform:translateY(-1px)}.dock button.active{color:#fff8ec;background:#2c2d2a}.dock svg{width:20px;height:20px}.dock span{font-size:12px;font-weight:600}.object-label{position:relative;padding:8px 12px;border:1px solid rgba(255,255,255,.15);border-radius:10px;color:#fff9ef;background:#232320e6;font:600 11px Noto Sans SC,sans-serif;white-space:nowrap;box-shadow:0 8px 24px #0003;pointer-events:none}.object-label:after{content:"";position:absolute;left:50%;bottom:-5px;width:9px;height:9px;background:#232320e6;transform:translate(-50%) rotate(45deg)}.drawer{position:absolute;z-index:30;top:14px;right:14px;bottom:14px;width:min(490px,calc(100vw - 28px));padding:34px 34px 112px;overflow:auto;border:1px solid var(--line);border-radius:30px;color:var(--ink);background:var(--paper);box-shadow:-22px 18px 70px #2a1e1633;-webkit-backdrop-filter:blur(26px);backdrop-filter:blur(26px);animation:drawerIn .55s cubic-bezier(.2,.8,.2,1) both}@keyframes drawerIn{0%{opacity:0;transform:translate(34px)}}.close{position:sticky;top:0;z-index:3;float:right;display:grid;place-items:center;width:42px;height:42px;margin:-18px -18px 0 0;border:1px solid var(--line);border-radius:14px;color:var(--ink);background:var(--solid)}.close svg{width:22px;height:22px}.eyebrow{display:flex;align-items:center;gap:7px;padding-top:14px}.eyebrow svg{width:18px;height:18px}.drawer h2{margin:0 0 12px;font:700 38px/1.06 Playfair Display,"Noto Serif SC",serif;letter-spacing:-.035em}.lede{margin:0 0 22px;color:var(--muted);font-size:13px;line-height:1.75}.edit-preview{overflow:hidden;margin:24px 0 20px;border:1px solid rgba(255,255,255,.08);border-radius:18px;background:#222421;box-shadow:0 18px 40px #1c181433}.preview-toolbar{height:33px;display:flex;align-items:center;gap:6px;padding:0 12px;background:#191b19}.preview-toolbar i{width:7px;height:7px;border-radius:50%;background:#d9684b}.preview-toolbar i:nth-child(2){background:#d5a85a}.preview-toolbar i:nth-child(3){background:#7f956d}.preview-toolbar span{margin-left:7px;color:#8f948c;font:8px ui-monospace,monospace}.preview-screen{position:relative;height:190px;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at 30% 30%,#c69a75,transparent 34%),linear-gradient(145deg,#735e50,#29393a 70%)}.preview-screen>div{display:grid;gap:2px;color:#fff4e5;text-align:center}.preview-screen small{font:11px ui-monospace,monospace;letter-spacing:.18em;opacity:.7}.preview-screen strong{font:700 28px Playfair Display,serif}.preview-screen button{position:absolute;right:15px;bottom:15px;display:grid;place-items:center;width:40px;height:40px;border:1px solid rgba(255,255,255,.22);border-radius:50%;color:#fff;background:#13151373}.preview-screen svg{width:18px}.timeline{position:relative;display:grid;gap:5px;padding:10px 12px 12px;background:#1b1d1b}.track{height:5px;border-radius:2px;background:#c96645}.track.t1,.track.t5{background:#c99b55}.track.t2{background:#667e6b}.track.t4{background:#75617b}.timeline>i{position:absolute;left:56%;top:5px;bottom:6px;width:1px;background:#f0d199;box-shadow:0 0 8px #f0d199}.step-detail{position:relative;padding:20px;border:1px solid var(--line);border-radius:17px;background:#805d3c0f}.step-detail>span{color:var(--accent);font-size:9px;font-weight:700;letter-spacing:.15em}.step-detail h3{margin:4px 0 9px;font-size:21px}.step-detail>b{position:absolute;right:18px;top:20px;padding:6px 9px;border-radius:8px;color:var(--accent);background:#c460381a;font-size:10px}.step-detail p{margin:0;color:var(--muted);font-size:12px;line-height:1.7}.step-tabs{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;margin-top:10px}.step-tabs button{display:flex;align-items:center;gap:9px;min-height:43px;padding:0 11px;border:1px solid var(--line);border-radius:12px;color:var(--muted);background:transparent;text-align:left;font-size:11px}.step-tabs button span{font:9px ui-monospace,monospace;opacity:.65}.step-tabs button.active{color:#fff8ed;border-color:#2d2e2b;background:#2d2e2b}.content-switch{display:grid;grid-template-columns:repeat(2,1fr);gap:5px;margin:20px 0 12px;padding:4px;border:1px solid var(--line);border-radius:14px;background:#805d3c0e}.content-switch button{min-height:40px;border:0;border-radius:10px;color:var(--muted);background:transparent;font-size:11px;font-weight:650;letter-spacing:.04em}.content-switch button.active{color:#fff8ed;background:#2d2e2b;box-shadow:0 7px 16px #201c1826}.work-showcase{display:grid;gap:12px}.work-player{overflow:hidden;border:1px solid rgba(255,255,255,.08);border-radius:18px;background:#151715;box-shadow:0 18px 40px #1c181433}.work-toolbar{display:flex;align-items:center;gap:9px;min-height:38px;padding:0 14px;color:#f6eee3;background:#1d1f1d}.work-toolbar span{color:#d7a45d;font:700 8px ui-monospace,monospace;letter-spacing:.15em}.work-toolbar b{font-size:11px}.work-toolbar small{margin-left:auto;color:#878c85;font:8px ui-monospace,monospace}.work-player video{display:block;width:100%;aspect-ratio:16/9;max-height:255px;background:#0d0f0e;object-fit:contain}.work-info{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;border:1px solid var(--line);border-radius:16px;background:#805d3c0b}.work-info span{color:var(--accent);font-size:8px;font-weight:700;letter-spacing:.15em}.work-info h3{margin:4px 0 2px;font-size:18px}.work-info p{margin:0;color:var(--muted);font-size:10px}.work-info>b{flex:none;color:var(--accent);font:700 12px ui-monospace,monospace}.work-selector{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}.work-selector button{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:9px;min-height:50px;padding:0 12px;border:1px solid var(--line);border-radius:13px;color:var(--muted);background:transparent;text-align:left}.work-selector button span,.work-selector button small{font:9px ui-monospace,monospace}.work-selector button b{color:var(--ink);font-size:12px}.work-selector button.active{border-color:#2d2e2b;background:#2d2e2b}.work-selector button.active b{color:#fff8ed}.work-selector button.active span{color:#e2aa61}.work-selector button.active small{color:#aeb2ac}.work-selector button.reserved{border-style:dashed;cursor:default;opacity:.62}.work-selector button.reserved b{color:var(--muted);font-weight:500}.work-selector button.reserved small{font-size:7px;letter-spacing:.06em}.card{margin-top:13px;padding:20px;border:1px solid var(--line);border-radius:18px;background:#805d3c0b}.card.featured{border-color:#c35e3652;background:#c35e3612}.card>span,.education>b,.agency-meta>span{color:var(--accent);font-size:10px;font-weight:700;letter-spacing:.08em}.card h3,.education h3{margin:7px 0 9px;font-size:17px}.card p,.education p,.about>p{margin:0;color:var(--muted);font-size:12px;line-height:1.72}.agency-card{padding:22px}.agency-meta{display:flex;align-items:center;justify-content:space-between;gap:12px}.agency-meta>b{padding:5px 9px;border-radius:999px;color:#fff8ed;background:var(--accent);font-size:10px;letter-spacing:.08em}.agency-card h3{max-width:360px;margin-top:10px;line-height:1.5}.client-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}.client-tags span{padding:5px 8px;border:1px solid rgba(195,94,54,.2);border-radius:999px;color:var(--accent);background:#c35e3612;font-size:9px;font-weight:600}.project-list{margin-top:14px;padding:13px 14px;border-left:2px solid var(--accent);background:#805d3c0d}.project-list>b{display:block;margin-bottom:5px;color:var(--ink);font-size:10px;letter-spacing:.08em}.project-list p{font-size:10px;line-height:1.65}.capability-chain{display:flex;flex-wrap:wrap;align-items:center;gap:5px;margin-top:14px}.capability-chain span{padding:6px 8px;border-radius:7px;color:var(--ink);background:#805d3c1a;font-size:9px;font-weight:600}.capability-chain i{color:var(--accent);font-style:normal;font-size:10px}.agency-card .agency-footnote{margin-top:13px;padding-top:12px;border-top:1px solid var(--line);font-size:10px}.metrics{display:grid;grid-template-columns:auto 1fr auto 1fr auto 1fr;align-items:center;gap:6px;margin-top:17px;padding-top:15px;border-top:1px solid var(--line)}.metrics b{color:var(--accent);font:700 19px Playfair Display,serif}.metrics small{color:var(--muted);font-size:8px}.education{display:grid;grid-template-columns:100px 1fr;gap:17px;padding:20px 0;border-top:1px solid var(--line)}.education:first-of-type{margin-top:24px}.education span{display:inline-block;margin-bottom:8px;color:var(--muted);font-size:11px}.education-hero{display:block;width:100%;height:180px;margin:20px 0 13px;object-fit:cover;border:1px solid var(--line);border-radius:18px;box-shadow:0 16px 36px #30221821}.school-card{margin-top:13px;padding:20px;border:1px solid var(--line);border-radius:18px;background:#805d3c0b}.school-card.featured{border-color:#c35e3652;background:#c35e3612}.school-card>span{color:var(--accent);font-size:10px;font-weight:700;letter-spacing:.08em}.school-card h3{margin:7px 0 9px;font-size:19px}.school-card p,.knowledge-grid p{margin:0;color:var(--muted);font-size:11px;line-height:1.65}.knowledge-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin-top:13px}.knowledge-grid article{position:relative;min-height:135px;padding:17px;border:1px solid var(--line);border-radius:16px;background:#805d3c09}.knowledge-grid article>b{color:var(--accent);font:700 11px ui-monospace,monospace}.knowledge-grid h3{margin:20px 0 7px;font-size:14px}.graduate-study-grid{margin-top:0}.section-label{margin:22px 0 9px;color:var(--accent);font-size:9px;font-weight:700;letter-spacing:.16em}.skill-groups{display:grid;gap:20px}.skill-group{display:grid;gap:9px}.skill-group-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.skill-group-title span{color:var(--accent);font-size:9px;font-weight:700;letter-spacing:.14em}.skill-group-title b{font-size:11px}.skill-matrix{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.skill-matrix article{position:relative;display:grid;grid-template-columns:44px 1fr;align-items:center;gap:11px;min-height:78px;padding:12px;border:1px solid var(--line);border-radius:15px;background:#805d3c09}.skill-matrix article>b{display:grid;place-items:center;width:42px;height:42px;border-radius:11px;color:#fff8ed;background:#2c2d2a;font:700 12px ui-monospace,monospace}.skill-matrix article:nth-child(2n)>b{background:var(--accent)}.skill-matrix h3{margin:0 0 3px;font-size:12px}.skill-matrix p{margin:0;color:var(--muted);font-size:9px;line-height:1.45}.skill-matrix .codex-skill{grid-column:span 2;border-color:#c35e3659;background:#c35e3614}.skill-matrix .codex-skill>b{background:var(--accent)}.skill-matrix .codex-skill>span{position:absolute;right:10px;top:9px;padding:3px 6px;border-radius:999px;color:#fff8ed;background:var(--accent);font-size:7px;font-weight:700;letter-spacing:.1em}.capability-label{margin-top:22px}.tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:0}.tags span{padding:7px 10px;border-radius:999px;color:var(--muted);background:#805d3c17;font-size:10px}.honors{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin-top:24px}.honors article{min-height:105px;display:flex;flex-direction:column;justify-content:space-between;gap:18px;padding:16px;border:1px solid var(--line);border-radius:16px;color:var(--muted);font-size:11px;line-height:1.55}.honors svg{width:22px;color:#c99c50}.honors .major{grid-column:span 2;min-height:92px;flex-direction:row;align-items:center;justify-content:flex-start;color:var(--ink);background:#cfa0501c;font-size:14px;font-weight:600}.about{text-align:center}.about .eyebrow{justify-content:center}.portrait-shell{display:grid;place-items:center;width:136px;height:160px;margin:10px auto 18px;overflow:hidden;border:6px solid rgba(255,255,255,.35);border-radius:42% 42% 15px 15px;background:linear-gradient(145deg,#c35e362e,#805d3c14);box-shadow:0 18px 40px #241e1926}.portrait-shell img{display:block;width:100%;height:100%;object-fit:cover}.portrait-shell span{display:grid;place-items:center;width:100%;height:100%;color:var(--accent);font:700 58px Playfair Display,"Noto Serif SC",serif}.about h2{margin-bottom:5px}.about .role{color:var(--accent);font-size:11px;font-weight:600;letter-spacing:.05em}.about>p{max-width:340px;margin:14px auto}.contacts{display:grid;gap:8px;margin-top:24px}.contacts a{display:flex;align-items:center;justify-content:center;gap:9px;min-height:45px;border:1px solid var(--line);border-radius:13px;color:var(--ink);text-decoration:none;font-size:12px}.contacts a:hover{border-color:var(--accent);color:var(--accent)}.contacts svg{width:18px}@media(max-width:980px){.dock{max-width:calc(100vw - 24px);overflow-x:auto}.dock span{display:none}.drawer{top:auto;left:10px;right:10px;bottom:10px;width:auto;height:min(72dvh,690px);padding:28px 24px 95px}.hint{bottom:82px}}@media(max-width:640px){header{inset:14px 14px auto}.brand>span{width:42px;height:42px}.brand div{display:none}.actions button{width:42px;padding:0;justify-content:center}.actions button span{display:none}.intro{left:14px;bottom:80px;width:calc(100vw - 28px);padding:25px 24px 27px}.intro h1{font-size:clamp(32px,10vw,42px)}.dock{bottom:12px}.drawer{height:78dvh}.drawer h2{font-size:32px}.step-tabs,.knowledge-grid,.skill-matrix,.work-selector{grid-template-columns:1fr}.skill-matrix .codex-skill{grid-column:auto}.education{grid-template-columns:1fr;gap:9px}.education-hero{height:155px}.work-player video{max-height:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.offline-control{position:relative;pointer-events:auto}.offline-panel{position:absolute;top:54px;right:0;width:min(350px,calc(100vw - 28px));padding:23px;border:1px solid var(--line);border-radius:20px;background:var(--solid);box-shadow:0 18px 50px #2f211838;color:var(--ink)}.offline-panel h2{margin:0 24px 12px 0;font-size:19px}.offline-panel p{font-size:12px;line-height:1.8;color:var(--muted);margin:10px 0}.actions .offline-close{position:absolute;top:9px;right:9px;width:30px;min-height:30px;padding:0;justify-content:center;box-shadow:none;background:transparent;border:0}.offline-status{font-size:11px;color:var(--accent);line-height:1.6;margin:14px 0}.actions .offline-save{width:100%;padding:12px 16px;display:flex;justify-content:space-between;background:#2c2d2a;color:#fff8ec;font-size:12px;min-height:44px;border-radius:12px}.offline-save:disabled{opacity:.65;cursor:default}.offline-save small{font-size:10px;white-space:nowrap}.offline-note{display:block;margin-top:15px;font-size:10px;line-height:1.7;color:var(--muted)}.offline-panel progress{width:100%;height:8px;accent-color:var(--accent)}.offline-panel .offline-error{color:var(--accent)}.offline-panel .offline-progress{font-size:11px}.offline-panel:focus{outline:none}.offline-control button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}@media(max-width:640px){.offline-panel{position:fixed;top:66px;right:14px;left:14px;width:auto;max-height:calc(100dvh - 150px);overflow:auto}.actions .offline-save{width:100%;justify-content:space-between;padding:12px 16px}.actions .offline-close{width:30px}}
