/* Original vZome VEF root polyhedra viewer (geometry-first, not a historic proof). */
.poly-source-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:-2px 0 18px}
.poly-source-strip>div{padding:16px 20px;border:1px solid #dfe8df;border-radius:9px;background:#fff;display:flex;flex-direction:column;gap:7px}
.poly-source-strip strong{font-size:25px;font-weight:700;color:#315c4a}
.poly-source-strip small{font-size:10px;color:#84978a;line-height:1.6}
.poly-view-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(250px,.8fr);gap:16px;align-items:start}
.poly-viewport-col,.poly-facts{min-width:0;border:1px solid #dfe8df;background:#fff;border-radius:13px;padding:19px}
.poly-viewport-top{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:0 0 15px}
.poly-viewport-top h2{font:600 21px/1.3 "Noto Serif KR",serif;color:#294e3f;margin:7px 0}
.poly-mode{background:#eaf2e8;border-radius:30px;padding:8px 10px;font-size:10px;color:#527862;white-space:nowrap}
.poly-canvas-frame{position:relative;background:#102629;border-radius:10px;overflow:hidden}
#polyCanvas{width:100%;height:auto;aspect-ratio:980/720;display:block;cursor:grab;touch-action:none}
#polyCanvas:active{cursor:grabbing}
.poly-compass{position:absolute;pointer-events:none;z-index:2;background:#eef4ebed;color:#42685b;border:1px solid #ccdcd1;padding:6px 9px;border-radius:30px;font-size:10px;white-space:nowrap}
.poly-south{top:8px;left:50%;transform:translateX(-50%);color:#b36c4e}
.poly-north{bottom:8px;left:50%;transform:translateX(-50%);color:#3d7390}
.poly-east{top:50%;left:8px;transform:translateY(-50%)}
.poly-west{top:50%;right:8px;transform:translateY(-50%)}
.poly-gesture-hint{position:absolute;bottom:8px;right:12px;background:#0c1d20ae;color:#a8c1ba;padding:6px 8px;border-radius:5px;font-size:9px}
.poly-progress-label{display:flex;align-items:center;justify-content:space-between;margin:16px 0 8px;font-size:11px;color:#809484}
.poly-progress-label strong{color:#406a53}.poly-viewport-col input[type=range]{accent-color:#315b48}
#polyProgress{width:100%;display:block}
.poly-controls{display:grid;grid-template-columns:1fr 1.5fr 1fr 1fr;gap:6px;margin:14px 0}
.poly-controls button{cursor:pointer;min-height:43px;padding:9px 8px;background:#f7faf5;border:1px solid #d7e6d8;border-radius:7px;color:#3f614c;font-weight:700;font-size:11px;font-family:inherit}
.poly-controls button:hover{border-color:#8db399}
.poly-controls button.poly-primary{color:#fff;background:#2d5b47;border-color:#2d5b47}
.poly-toggles{display:flex;gap:11px;flex-wrap:wrap;align-items:center;border-top:1px solid #e7eee6;padding-top:14px}
.poly-toggles label{font-size:11px;color:#627d6b;display:flex;gap:5px;align-items:center;cursor:pointer}.poly-toggles input{accent-color:#2d5b47}
.poly-status{font-size:11px;color:#799582;line-height:1.8;margin:15px 0 0}
.poly-facts h3{font:600 20px "Noto Serif KR",serif;color:#325943;margin:10px 0 19px}
.poly-name-item{display:flex;gap:12px;border-bottom:1px solid #ecf0ec;padding:16px 0}
.poly-name-item .poly-badge{background:#edf4ee;color:#4e8165;border-radius:7px;padding:8px;height:fit-content;font-size:11px;font-weight:700}
.poly-name-item b{font-size:13px;color:#315941}.poly-name-item small{display:block;font-weight:400;color:#8aa091;font-size:9px;margin-top:5px}
.poly-name-item p{font-size:11px;line-height:1.85;margin:8px 0 0;color:#798f81}
.poly-index-label{display:flex;justify-content:space-between;align-items:center;gap:8px;color:#6a876f;font-size:11px;margin:14px 0 10px}
#polyTetra{width:100%}
.poly-index-label input{accent-color:#2d5b47}
.poly-mini{margin:18px 0 13px}
.poly-mini>div{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #eef1ec;padding:11px 0;gap:8px;font-size:11px;color:#96a499}
.poly-mini b{color:#50725b;font-size:11px;text-align:right}
.poly-source-note{background:#f6f8f2;border-left:3px solid #9cae96;padding:15px;color:#738a74;font-size:11px;line-height:1.8;margin:16px 0}
.poly-readme-link{color:#3f7256;font-size:11px;text-decoration:underline}
.poly-bottom-note{background:#eef5ed;border:1px solid #dce9db;border-radius:11px;padding:20px 22px;margin:23px 0;color:#3e634e}
.poly-bottom-note strong{font-size:13px}
.poly-bottom-note p{color:#718c79;font-size:11px;line-height:1.9}
.poly-bottom-note button{font-family:inherit;color:#fff;background:#2c5a46;border:0;padding:12px 15px;border-radius:7px;cursor:pointer;font-size:11px}
@media(max-width:1100px){.poly-view-layout{grid-template-columns:1fr}.poly-source-strip>div{padding:13px 15px}}
@media(max-width:630px){.poly-source-strip{grid-template-columns:1fr 1fr;gap:6px}.poly-viewport-col,.poly-facts{padding:13px}.poly-viewport-top h2{font-size:17px}.poly-mode{white-space:normal}.poly-controls{grid-template-columns:1fr 1fr}.poly-controls button{font-size:10px}.poly-compass{font-size:8px;padding:4px 5px}.poly-gesture-hint{font-size:7px}}

.poly-seq-hd-image{display:block;padding:11px 12px;margin:10px 0;background:#e4f1e4;border-radius:7px;color:#276247;font-size:11px;font-weight:700;text-decoration:underline}
/* Source-exact 5 polyhedra, 120-second reveal, source ZIR 28 character timelapse */
#polySequenceCanvas{position:absolute;inset:0;display:block;z-index:1;width:100%;height:100%;object-fit:fill;background:#0e232a}
#polySequenceCanvas[hidden]{display:none!important}
.poly-sequence-lab{margin:22px 0 5px;border:1px solid #d3e2d9;padding:17px 17px 18px;border-radius:11px;background:linear-gradient(135deg,#f4f8f2,#f9fcf6)}
.poly-seq-header{display:flex;justify-content:space-between;align-items:center;gap:13px}
.poly-seq-header h3{font:600 18px/1.35 "Noto Serif KR",serif;color:#315b45;margin:6px 0 5px}
.poly-seq-header strong{font-size:14px;white-space:nowrap;font-variant-numeric:tabular-nums;color:#2b684d}
.poly-seq-intro{font-size:11px;color:#6d8674;line-height:1.9;margin:7px 0 15px}
.poly-seq-now{display:flex;align-items:center;gap:10px;background:#e6eee4;border:1px solid #d9e4d8;border-radius:8px;padding:12px 13px}
.poly-seq-dot{width:10px;height:10px;background:#43856a;border-radius:50%;flex:none}
.poly-seq-now strong{font-size:13px;color:#2d5640;display:block}
.poly-seq-now small{display:block;color:#77917c;font-size:10px;line-height:1.7;margin-top:6px}
.poly-seq-seek-label{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#637d6d;font-size:10px;margin:14px 0 9px}
#polySeqSeek{width:100%;accent-color:#2d6d51;cursor:pointer}
.poly-seq-controls{display:grid;grid-template-columns:2fr 1fr 1fr;gap:6px;margin:13px 0 14px}
.poly-seq-controls button{border:1px solid #cfddd0;border-radius:7px;background:#fff;padding:11px 7px;min-height:42px;font-family:inherit;cursor:pointer;font-size:10px;color:#436d50;font-weight:700}
.poly-seq-controls button:hover{border-color:#7ab18f;background:#eaf4e9}
.poly-seq-controls .poly-seq-primary{background:#2b5e48;color:#fff;border-color:#2b5e48}
.poly-seq-controls .poly-seq-primary:hover{background:#214936}
.poly-seq-chapters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.poly-seq-chapters button{font-family:inherit;font-size:10px;min-height:36px;text-align:left;padding:8px 11px;cursor:pointer;border-radius:6px;background:#fdfefd;color:#55735c;border:1px solid #dce9dc}
.poly-seq-chapters button:hover,.poly-seq-chapters button.active{background:#dfeee1;color:#265a3b;border-color:#9acba9}
.poly-seq-status{font-size:10px;color:#547c63;line-height:1.8;margin:15px 0 9px}
.poly-seq-disclaimer{font-size:10px;color:#8b9e90;line-height:1.75;border-top:1px solid #e1ebe0;padding-top:11px;margin:0}
.poly-names-verified{font-size:11px;color:#6c8670;line-height:1.9;background:#eff6ec;padding:12px;margin:0 0 7px;border-radius:8px}
@media(max-width:590px){.poly-sequence-lab{padding:13px}.poly-seq-header{flex-wrap:wrap}.poly-seq-header h3{font-size:15px}.poly-seq-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.poly-seq-controls .poly-seq-primary{grid-column:span 2}.poly-seq-chapters button{font-size:9px;padding:8px}}