:root{font-family:Arial,Helvetica,sans-serif;color:#263d3e;background:#f0eddf;font-synthesis:none;font-weight:400;font-size:14px}*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}button,.file{border:1px solid #b9c4b5;color:#263d3e;background:#f7f5e9;padding:10px 13px;border-radius:7px;cursor:pointer;transition:background .16s,transform .16s}button:hover,.file:hover{background:#dce6cf;transform:translateY(-1px)}button:disabled{opacity:.42;cursor:not-allowed;transform:none}button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid #d95379;outline-offset:3px}input,textarea{min-width:0;background:#fffdf3;border:1px solid #bcc6ba;border-radius:5px;padding:8px;color:inherit}label{display:flex;flex-direction:column;gap:6px;font-size:12px;margin:8px 0}input[type=range]{accent-color:#446650;width:100%;padding:0}input[type=color]{padding:2px;height:34px;width:54px}input[type=checkbox]{accent-color:#446650}small{font-size:11px;line-height:1.6;color:#637471;display:block}header{min-height:100px;border-bottom:1px solid #bcc8b8;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px 34px;background:#f7f4e8}.brand{position:relative;padding-left:42px;line-height:1.3;letter-spacing:2px;font-size:10px;color:inherit;text-decoration:none}.brand b{font-size:18px;letter-spacing:3px}.mark{position:absolute;left:0;top:-4px;font-size:42px;color:#597257}.strap{letter-spacing:2px;font-size:10px}.strap small{letter-spacing:0;margin-top:8px}.outline{background:transparent}main{display:grid;grid-template-columns:290px minmax(0,1fr);min-height:calc(100vh - 100px)}aside{padding:32px 24px;border-right:1px solid #bcc8b8}h1{font-family:Georgia,serif;font-size:32px;line-height:1.15;font-weight:400;margin:20px 0}h1 em{color:#577257;font-weight:400}.eyebrow{font-size:9px;font-weight:700;letter-spacing:2px;color:#697b6e}.intro{font-size:13px;line-height:1.7;color:#6b7971;margin:0 0 22px}.file{font-size:12px;font-weight:700;display:block;margin:12px 0}.file input{display:block;max-width:100%;font-size:10px;margin-top:8px;padding:4px}.samples{margin-top:30px}.samples button{display:flex;gap:10px;align-items:center;width:100%;text-align:left;font-size:11px;margin-top:8px}.samples button span{margin-left:auto}.samples i{width:18px;height:22px;border-radius:2px}.layers{margin:15px 0}.layers button{display:flex;width:100%;justify-content:space-between;text-align:left;font-size:11px;margin-top:6px}.layers button.selected{background:#294a42;color:#f4f1de}.layers button span{overflow-wrap:anywhere;white-space:pre-wrap}.layers b{margin-left:10px}aside section{margin-top:32px}aside section>button{font-size:11px;margin:3px}article{padding:30px 36px;min-width:0;max-width:1550px;width:100%;margin:auto}.stagebar{display:flex;justify-content:space-between;align-items:center;gap:20px}h2{font:26px Georgia,serif;white-space:pre-wrap;overflow-wrap:anywhere;margin:8px 0 22px}.badge{border:1px solid #c1ccbb;border-radius:20px;white-space:nowrap;font-size:10px;padding:8px 10px}.modebar{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:15px}.modebar button{font-size:11px;border-color:transparent;background:transparent}.modebar .active{background:#294a42;color:#fff9e9}.mat{padding:35px 45px 18px;background:#d4dccc;border:1px solid #c0ccb8;border-radius:12px;box-shadow:inset 0 0 40px #c5cebb}.viewport{position:relative;width:100%;max-width:800px;max-height:65vh;margin:auto;background:#181c26;box-shadow:0 14px 30px #26382c30;touch-action:none;overflow:hidden}.viewport canvas{width:100%;height:100%;display:block;image-rendering:pixelated}.webgl,.viewport svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.webgl canvas{width:100%;height:100%}.caption{display:flex;justify-content:center;gap:24px;flex-wrap:wrap;color:#516452;font-size:9px;margin-top:20px}.pink{color:#a12f67}.camera{display:grid;grid-template-columns:1fr 1fr auto auto;gap:15px;align-items:center;margin:18px 0}.camera button,.camera label{font-size:10px}.metrics{display:flex;justify-content:space-between;border-top:1px solid #c0cbbb;border-bottom:1px solid #c0cbbb;padding:20px 0;gap:18px}.metrics strong{display:block;font:20px Georgia,serif}.metrics span{font-size:9px;color:#68796e;display:block;margin-top:7px}.renderer{font-size:10px;color:#768277}.status,.warning{font-size:12px;padding:12px 15px;border-radius:6px;background:#e2e8d9;line-height:1.5}.warning{background:#f4d7dd;color:#7c2444}.tools{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin-top:26px}.tools>div{padding:20px;border:1px solid #c0cbbb;border-radius:10px}.tools button{font-size:11px;margin:4px 4px 4px 0}h3{font:19px Georgia,serif;margin:0 0 16px}.row{display:flex;gap:12px}.row label{flex:1;min-width:0}.row input{width:100%}.check{flex-direction:row;align-items:flex-start;line-height:1.6}.check input{margin-top:4px}details{margin-top:20px;border-top:1px solid #c0cbbb;padding-top:15px;font-size:12px}summary{cursor:pointer}textarea{width:100%;height:140px;margin:12px 0;font-family:monospace;font-size:11px}details p{line-height:1.7}footer{padding:25px 34px;background:#294a42;color:#e7edd8;font-size:10px;letter-spacing:1px}footer details{letter-spacing:0;max-width:900px}footer button{margin-right:8px}footer small{color:#bccbb5;margin-top:14px}@media(max-width:1050px){main{grid-template-columns:240px minmax(0,1fr)}aside{padding:25px 18px}article{padding:25px 20px}.mat{padding:24px 20px 15px}.camera{grid-template-columns:1fr 1fr}.tools{grid-template-columns:1fr}.badge{display:none}}@media(max-width:700px){header{padding:18px;min-height:80px}.strap{display:none}main{display:flex;flex-direction:column}aside{border-right:0;border-bottom:1px solid #bcc8b8}h1{font-size:28px}.samples{display:grid;grid-template-columns:1fr 1fr;gap:5px}.samples .eyebrow{grid-column:1/-1}aside section{margin-top:20px}.layers{display:flex;gap:5px;flex-wrap:wrap}.layers button{width:auto}.mat{padding:16px 12px}.caption,.metrics{gap:10px}.metrics strong{font-size:17px}article{padding:25px 15px}.viewport{max-height:none}footer{padding:24px 18px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}@keyframes arrive{0%{opacity:.65;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.mat{animation:arrive .45s ease-out both}.stagebar>div{min-width:0;flex:1}.layers button span{min-width:0;flex:1}.layers b,.badge{flex-shrink:0}.metrics>div{min-width:0;overflow-wrap:anywhere}
