:root{font-family:system-ui,-apple-system,"Noto Sans KR",sans-serif;color:#1e2c26;background:#f4f2ea;font-synthesis:none;--ink:#1e2c26;--muted:#69756b;--line:#d3d7c9;--accent:#a15032}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:92px}body{margin:0}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button,summary{cursor:pointer}button{color:inherit}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,canvas:focus-visible{outline:3px solid var(--accent);outline-offset:4px}[hidden]{display:none!important}.skip{position:fixed;top:-60px;left:20px;z-index:100;background:white;padding:12px}.skip:focus{top:12px}.topbar{position:sticky;top:0;z-index:10;display:flex;justify-content:space-between;align-items:center;gap:22px;min-height:74px;padding:0 clamp(22px,4vw,72px);background:#f4f2eaf2;backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.wordmark{font-size:13px;font-weight:850;letter-spacing:-.03em;white-space:nowrap}.wordmark span{font-size:10px;font-weight:500;letter-spacing:.09em;margin-left:9px;color:var(--muted)}.topbar nav{display:flex;gap:25px;font-size:12px}.topbar nav a:hover{color:var(--accent)}main{max-width:1440px;margin:auto;padding:0 clamp(22px,4vw,72px)}.hero{padding-top:46px}.hero-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:30px}.eyebrow{font-size:11px;letter-spacing:.12em;font-weight:650;color:var(--accent);margin:0 0 16px}h1{font-size:clamp(34px,4vw,54px);line-height:1.18;letter-spacing:-.06em;margin:0;font-weight:750}h1 span{display:block;font-size:16px;font-weight:500;letter-spacing:-.025em;margin-top:12px;color:var(--muted)}.hero-intro{font-size:13px;line-height:1.9;color:var(--muted);margin:0 0 2px}.viewer-layout{display:grid;grid-template-columns:minmax(0,1fr) 262px;border:1px solid var(--line);min-height:560px}.viewport{position:relative;min-width:0;overflow:hidden;background:#e9ece3;height:clamp(510px,62vh,740px)}#model-canvas{width:100%;height:100%;display:block;touch-action:none;visibility:hidden} .viewport.ready #model-canvas{visibility:visible}.poster{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.ready .poster{display:none}.viewer-tag{position:absolute;top:22px;left:24px;right:24px;display:flex;align-items:center;gap:8px;font-size:11px;pointer-events:none}.viewer-tag>span:last-child{margin-left:auto;color:var(--muted);font:10px ui-monospace,monospace;letter-spacing:.07em}.dot{width:6px;height:6px;background:#546f48;border-radius:100%}.viewer-bottom{position:absolute;bottom:19px;left:24px;right:24px;display:flex;justify-content:space-between;align-items:center;gap:16px}.viewer-bottom p{font-size:11px;color:var(--muted);margin:0;max-width:70%}.viewer-bottom button{padding:8px 0;background:none;border:0;font-size:11px}.viewer-controls{padding:27px 24px;background:#faf9f4;border-left:1px solid var(--line);display:flex;flex-direction:column}.mode-buttons{display:flex;flex-direction:column;gap:8px;margin-bottom:24px}.mode-buttons button{display:flex;gap:15px;align-items:center;padding:13px 14px;text-align:left;font-size:10px;color:var(--muted);border:1px solid var(--line);background:transparent}.mode-buttons span{font-size:13px;font-weight:650}.mode-buttons .active{background:var(--ink);color:#f4f2ea;border-color:var(--ink)}.control-label{font-size:10px;color:var(--muted);margin:0 0 10px}.stages{list-style:none;padding:0;margin:0 0 22px;counter-reset:stage}.stages button{padding:8px 0;background:none;border:0;font-size:12px;color:var(--muted);width:100%;text-align:left}.stages button:before{counter-increment:stage;content:"0" counter(stage);font:10px ui-monospace,monospace;margin-right:12px;color:#919c8d}.stages button.active{color:var(--accent);font-weight:700}.range-label{display:flex;justify-content:space-between;font-size:11px;margin:12px 0 10px}input[type=range]{width:100%;accent-color:var(--accent);height:22px;margin:0}.hint{font-size:10px;line-height:1.8;color:var(--muted);margin:10px 0 17px}.check{display:flex;align-items:center;gap:6px;margin-top:auto;padding-top:17px;border-top:1px solid var(--line);font-size:11px;line-height:1.6}.check input{accent-color:var(--accent);width:14px;height:14px}.mouse-hint{font-size:10px;line-height:1.8;color:var(--muted);margin:12px 0 0}#play{width:100%;padding:13px;border:0;background:var(--ink);color:white;font-size:12px}button:disabled{opacity:.45;cursor:not-allowed}select{width:100%;background:transparent;border:1px solid var(--line);padding:9px;font-size:11px}.stroke{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--muted);border-top:1px solid var(--line);padding-top:16px}.stroke strong{font-size:32px;font-weight:550;color:var(--ink);letter-spacing:-.04em}.stroke strong span{font-size:12px;margin-left:4px}.facts{display:grid;grid-template-columns:1fr 1fr 1fr 1.6fr;padding:27px 0 35px;border-bottom:1px solid var(--line);gap:26px}.facts>div{display:flex;align-items:center;gap:14px}.facts strong{font-size:32px;font-weight:500;letter-spacing:-.04em}.facts small{font-size:12px;margin-left:3px}.facts span{font-size:11px;color:var(--muted)}.facts p{font-size:11px;line-height:1.9;color:var(--muted);margin:0}.content-section{padding:76px 0;border-bottom:1px solid var(--line)}.section-heading{margin-bottom:34px}.section-heading h2{font-size:clamp(25px,3vw,36px);line-height:1.4;font-weight:650;letter-spacing:-.05em;margin:0}.section-heading>p:not(.eyebrow){font-size:13px;color:var(--muted);line-height:1.9;margin:16px 0 0}#parts-groups{display:grid;grid-template-columns:1fr 1fr;gap:12px}details{background:#faf9f4;border:1px solid var(--line)}summary{padding:19px 22px;display:flex;justify-content:space-between;gap:20px;font-size:13px;list-style:none}summary::-webkit-details-marker{display:none}summary:after{content:"＋";color:var(--accent)}details[open] summary:after{content:"−"}summary span{font-size:11px;color:var(--muted);margin-left:auto}.parts-list{list-style:none;padding:0 22px 18px;margin:0}.parts-list li{display:flex;gap:10px;justify-content:space-between;align-items:start;border-top:1px solid var(--line);padding:10px 0;font-size:11px;line-height:1.6}.parts-list span{overflow-wrap:anywhere}.parts-list b{font:11px ui-monospace,monospace;white-space:nowrap;margin-left:10px}.process-grid,.result-grid,.mechanism-notes{display:grid;grid-template-columns:repeat(3,1fr);gap:34px}.process-grid article{padding-top:20px;border-top:2px solid var(--ink)}article h3{font-size:16px;font-weight:650;margin:14px 0 10px;letter-spacing:-.03em}article p{font-size:12px;line-height:1.9;color:var(--muted);margin:0}.process-grid article>span{font:11px ui-monospace,monospace;color:var(--accent)}.mechanism{display:grid;grid-template-columns:.75fr 1.25fr;gap:25px 40px}.mechanism figure{margin:0;background:#e9ece3}.mechanism img{width:100%;height:auto;display:block;mix-blend-mode:multiply}.mechanism figcaption{font-size:10px;padding:0 22px 20px;color:var(--muted)}.mechanism-notes{grid-column:1/-1;padding-top:20px}.text-button{border:0;border-bottom:1px solid var(--accent);padding:7px 0;background:none;color:var(--accent);font-size:12px;margin-top:23px}.result-grid article{background:#e9ece3;padding:26px}.result-tag{font-size:10px;color:#48634a}.result-tag.pending{color:#8b654f}.downloads details+details{margin-top:12px}.downloads ul{list-style:none;padding:0 22px 18px;margin:0}.downloads li a{display:flex;justify-content:space-between;gap:16px;border-top:1px solid var(--line);padding:14px 0;font-size:12px;overflow-wrap:anywhere}.downloads a span{font-size:10px;color:var(--accent);white-space:nowrap}.downloads details>p{font-size:11px;color:var(--muted);padding:0 22px 18px;margin:0}.library-back{display:inline-block;font-size:12px;margin-top:24px;color:var(--accent)}footer{max-width:1440px;margin:auto;padding:28px clamp(22px,4vw,72px);display:flex;justify-content:space-between;font-size:10px;color:var(--muted)}@media(max-width:1000px){.topbar nav{gap:14px;font-size:11px}.wordmark span{display:none}.viewer-layout{grid-template-columns:minmax(0,1fr) 224px}.viewer-controls{padding:24px 19px}.facts{grid-template-columns:repeat(3,1fr)}.facts p{grid-column:1/-1}.facts>div{display:block}.facts span{display:block;margin-top:5px}}@media(max-width:720px){html{scroll-padding-top:110px}.topbar{align-items:start;flex-direction:column;gap:12px;padding:15px 22px}.topbar nav{width:100%;overflow-x:auto;white-space:nowrap;padding-bottom:3px}.hero{padding-top:30px}.hero-heading{display:block}.hero-intro{margin-top:18px;font-size:12px}.viewer-layout{display:block}.viewport{height:440px}.viewer-controls{border-left:0;border-top:1px solid var(--line);padding:20px}.viewer-controls>.eyebrow,.mouse-hint{display:none}.mode-buttons{flex-direction:row;margin-bottom:18px}.mode-buttons button{flex:1}.stages{display:flex;flex-wrap:wrap;gap:3px 13px;margin-bottom:14px}.stages button{font-size:11px;width:auto;padding:6px 0}.stages button:before{display:none}.check{margin-top:16px}.viewer-bottom{left:15px;right:15px}.viewer-tag{left:15px;right:15px}.viewer-bottom p{max-width:62%;font-size:10px}.facts{gap:12px;padding-top:23px}.facts strong{font-size:28px}.facts span{font-size:10px}.content-section{padding:50px 0}#parts-groups{grid-template-columns:1fr}.process-grid,.result-grid,.mechanism-notes{grid-template-columns:1fr;gap:25px}.mechanism{display:block}.mechanism figure{margin-bottom:26px}.mechanism-notes article{margin-bottom:20px}summary{padding:17px;font-size:12px}summary span{font-size:10px}.section-heading{margin-bottom:25px}.result-grid{gap:12px}footer{gap:20px;line-height:1.7}.downloads li a{font-size:11px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
#assemble-play{width:100%;padding:10px;border:1px solid var(--line);background:transparent;font-size:11px;margin-bottom:10px}


/* Full-screen project entrance */
:root{--ink:#e9ecef;--muted:#a3adb7;--line:#303941;--accent:#ffae72;color:var(--ink);background:#10161c}
html{scroll-padding-top:76px}body{background:#10161c}.topbar{height:64px;min-height:64px;background:#10161ce8;border-color:#ffffff12;padding:0 clamp(20px,4vw,64px)}
main{max-width:none;padding:0}.hero{position:relative;padding:0;height:calc(100svh - 64px);min-height:480px;display:flex;flex-direction:column;background:#10161c;overflow:hidden}
.hero-heading{position:absolute;z-index:2;left:clamp(22px,4vw,64px);top:clamp(24px,4vh,50px);margin:0;pointer-events:none}.hero-heading .eyebrow{font-size:10px;letter-spacing:.18em;margin-bottom:13px}h1{font-size:clamp(32px,3.5vw,54px);font-weight:650;letter-spacing:-.055em}h1 span{font-size:13px;color:#a3adb7;margin-top:10px}
.viewer-layout{display:block;border:0;min-height:0;flex:1;position:relative}.viewport{height:100%;min-height:0;background:#10161c}.poster{opacity:.8}.viewer-tag{top:auto;bottom:58px;left:clamp(22px,4vw,64px);right:clamp(22px,4vw,64px);font-size:10px;color:#a3adb7}.dot{background:#ffae72}.viewer-tag>span:last-child{color:#75828f}.viewer-bottom{left:clamp(22px,4vw,64px);right:clamp(22px,4vw,64px);bottom:26px}.viewer-bottom p{color:#a3adb7}.viewer-bottom button{color:#a3adb7}
.hero-toolbar{display:flex;align-items:center;gap:22px;min-height:72px;padding:12px clamp(22px,4vw,64px);border-top:1px solid #ffffff15;background:#10161c}.hero-toolbar .mode-buttons{flex-direction:row;margin:0;gap:18px}.hero-toolbar .mode-buttons button{border:0;background:none;padding:6px 0;color:#7d8995;font-size:0}.hero-toolbar .mode-buttons button span{font-size:12px;font-weight:500}.hero-toolbar .mode-buttons button.active{color:#ffae72;background:none;border-color:transparent}.hero-toolbar #assemble-play{border:0;background:none;color:#e9ecef;padding:6px 0;font-size:12px}.hero-toolbar .check{padding:0;margin:0;border:0;font-size:12px;color:#a3adb7}.scroll-cue{margin-left:auto;font-size:12px;color:#ffae72;animation:cue-in .6s ease-out}@keyframes cue-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
#project-details{--ink:#202b30;--muted:#67747a;--line:#d5dadd;--accent:#a15032;color:var(--ink);background:#f5f5f0;padding:0 clamp(22px,6vw,96px);animation:cue-in .6s ease-out}.viewer-controls{display:block;background:transparent;border:0;padding:40px 0;border-bottom:1px solid var(--line)}.viewer-controls> .eyebrow{margin-bottom:20px}#assembly-controls{max-width:620px}.stages{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:12px}.stages button{width:auto}.viewer-controls .mouse-hint{margin:12px 0}.facts{margin-top:0}#motion-controls{max-width:620px}#project-details .content-section{padding-top:70px;padding-bottom:70px}.mechanism figure{background:#e9ece3}footer{background:#f5f5f0;color:#67747a;padding-left:clamp(22px,6vw,96px);padding-right:clamp(22px,6vw,96px)}
@media(max-width:700px){.topbar{padding:0 20px}.wordmark span{display:none}.topbar nav{gap:14px;font-size:11px}.hero{min-height:440px}.hero-heading{top:24px}.hero-toolbar{gap:14px;flex-wrap:wrap;min-height:90px}.hero-toolbar .check{font-size:11px}.hero-toolbar .mode-buttons{gap:14px}.scroll-cue{font-size:11px}.viewer-tag{bottom:55px}.viewer-bottom{bottom:22px}.viewer-controls{padding:28px 0}.stages{gap:10px}.stages button{font-size:11px}#project-details .content-section{padding-top:45px;padding-bottom:45px}}
@media(prefers-reduced-motion:reduce){.scroll-cue,#project-details{animation:none}}
.hero-toolbar #assemble-play{width:auto;margin:0;white-space:nowrap}.hero-toolbar .mode-buttons button{flex:none}.hero-toolbar .mode-buttons{flex-shrink:0}.topbar{flex-direction:row;align-items:center;gap:22px}.topbar nav{width:auto;overflow:visible;padding:0}.viewer-layout{min-height:0}.viewport{position:absolute;inset:0;height:auto}.skip{color:#202b30}
