.g,.gv{--paper:#f3f1ec;--card:#fbfaf7;--ink:#16150f;--mute:#6f6b62;--rule:#dcd8ce;--coral:#ff6b57;--coral-ink:#c8432f;--sans:"IBM Plex Sans", system-ui, sans-serif;--mono:"IBM Plex Mono", ui-monospace, monospace;font-family:var(--sans);color:var(--ink);background:var(--paper)}.g{min-height:100vh;padding:0 16px 96px}.g code,.gv code{font-family:var(--mono);background:#e9e5dc;border-radius:4px;padding:1px 5px;font-size:.86em}.g a,.gv a{color:inherit}.g-head{max-width:1280px;margin:0 auto;padding:56px 0 28px}.g-brand{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--mute);align-items:center;gap:8px;font-size:12px;display:flex}.g-dot{background:var(--coral);border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 4px #ff6b572e}.g-head h1{letter-spacing:-.035em;margin:18px 0 16px;font-size:clamp(40px,7vw,84px);font-weight:600;line-height:.95}.g-lead{color:#3b3830;max-width:640px;margin:0;font-size:17px;line-height:1.55}.g-bar{border-top:1px solid var(--ink);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:36px;padding-top:14px;display:flex}.g-filters{flex-wrap:wrap;gap:6px;display:flex}.g-filters button,.g-compare,.v-btn,.v-widths button,.v-back{font:500 13px var(--sans);color:var(--ink);border:1px solid var(--rule);cursor:pointer;white-space:nowrap;background:0 0;border-radius:999px;align-items:center;gap:7px;padding:7px 13px;text-decoration:none;display:inline-flex}.g-filters button span{font-family:var(--mono);color:var(--mute);font-size:11px}.g-filters button.on,.v-widths button.on,.v-btn.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}.g-filters button.on span{color:#bdb8ad}.g-filters button:hover:not(.on),.v-btn:hover:not(.on),.v-widths button:hover:not(.on),.v-back:hover{border-color:var(--ink)}.g-compare{background:var(--coral);border-color:var(--coral);color:#fff}.g-compare:disabled{color:var(--mute);border-color:var(--rule);cursor:default;background:0 0}.g-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 32px;max-width:1280px;margin:8px auto 0;display:grid}.g-empty{color:var(--mute)}.g-card{animation:.5s cubic-bezier(.2,.8,.2,1) both gIn}@keyframes gIn{0%{opacity:0;transform:translateY(14px)}}.g-thumb{background:var(--card);box-shadow:0 0 0 1px var(--rule), 0 18px 40px -24px #16150f59;border-radius:12px;transition:box-shadow .25s,transform .25s;display:block;position:relative;overflow:hidden}.g-thumb:hover{box-shadow:0 0 0 1px var(--ink), 0 28px 50px -26px #16150f73;transform:translateY(-3px)}.g-card.picked .g-thumb{box-shadow:0 0 0 2px var(--coral), 0 18px 40px -24px #16150f59}.g-open{font:500 12px var(--mono);background:var(--ink);color:var(--paper);opacity:0;border-radius:999px;padding:6px 10px;transition:all .2s;position:absolute;bottom:12px;right:12px;transform:translateY(4px)}.g-thumb:hover .g-open,.g-thumb:focus-visible .g-open{opacity:1;transform:none}.g-meta{padding:16px 2px 0}.g-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.g-num{font:500 12px var(--mono);color:var(--mute)}.g-tag{font:500 11px var(--mono);letter-spacing:.04em;text-transform:uppercase;background:#e6e2d8;border-radius:4px;padding:3px 8px}.g-tag.new{color:var(--coral-ink);background:#ffe1da}.g-swatch{margin-left:2px;display:inline-flex}.g-swatch i{width:14px;height:14px;box-shadow:0 0 0 1.5px var(--paper), 0 0 0 2.5px var(--rule);border-radius:50%;margin-right:-3px}.g-star{cursor:pointer;color:#c9c4b8;background:0 0;border:0;margin-left:auto;padding:4px;font-size:18px;line-height:1;transition:transform .15s,color .15s}.g-star:hover{color:var(--mute);transform:scale(1.15)}.g-star.on{color:var(--coral)}.g-pick{font:500 12px var(--sans);color:var(--mute);cursor:pointer;align-items:center;gap:5px;display:inline-flex}.g-pick input{accent-color:var(--coral);margin:0}.g-meta h2{letter-spacing:-.02em;margin:10px 0 6px;font-size:24px;font-weight:600}.g-meta h2 a{text-decoration:none}.g-meta h2 a:hover{text-underline-offset:4px;text-decoration:underline;text-decoration-thickness:1px}.g-meta p{color:#3b3830;max-width:58ch;margin:0;font-size:15px;line-height:1.55}.g-meta dl,.v-notes dl{gap:4px;margin:12px 0 0;font-size:13px;display:grid}.g-meta dl div,.v-notes dl div{gap:10px;display:flex}.g-meta dt,.v-notes dt{font-family:var(--mono);color:var(--mute);flex-shrink:0;width:52px;padding-top:1px;font-size:12px}.g-meta dd,.v-notes dd{overflow-wrap:anywhere;min-width:0;margin:0}.g-meta blockquote{border-left:2px solid var(--coral);background:var(--card);white-space:pre-wrap;margin:12px 0 0;padding:8px 12px;font-size:14px}.frame{background:#fff;width:100%;position:relative;overflow:hidden}.frame-fill{height:100%}.frame iframe{transform-origin:0 0;background:#fff;border:0;display:block;position:absolute;top:0}.gv{flex-direction:column;height:100dvh;display:flex}.v-bar{border-bottom:1px solid var(--rule);flex-wrap:wrap;align-items:center;gap:12px;padding:10px 16px;display:flex}.v-title{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.v-title b{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.v-count{font:12px var(--mono);color:var(--mute)}.v-widths{gap:4px;display:flex}.v-actions{align-items:center;gap:6px;display:flex}.v-actions .g-star{margin-left:0}.v-body{flex:1;min-height:0;display:flex}.v-stage{background:repeating-linear-gradient(45deg,#0000 0 10px,#16150f06 10px 20px);flex-direction:column;flex:1;align-items:center;min-width:0;padding:16px;display:flex}.v-device{width:100%;min-height:0;box-shadow:0 0 0 1px var(--rule), 0 24px 60px -30px #16150f80;border-radius:10px;flex:1;overflow:hidden}.v-split .v-stage+.v-stage{border-left:1px solid var(--rule)}.v-pane-label{font:500 12px var(--mono);align-self:flex-start;margin-bottom:10px;text-decoration:none}.v-notes{border-left:1px solid var(--rule);background:var(--card);flex-shrink:0;width:320px;padding:20px;overflow:auto}.v-notes h3{letter-spacing:-.01em;margin:0 0 8px;font-size:18px}.v-notes p{color:#3b3830;margin:0;font-size:14px;line-height:1.55}.v-notes label{font:500 12px var(--mono);color:var(--mute);margin-top:20px;display:block}.v-notes textarea{width:100%;font:14px/1.5 var(--sans);border:1px solid var(--rule);color:var(--ink);resize:vertical;background:#fff;border-radius:8px;margin-top:8px;padding:10px;display:block}.v-notes textarea:focus{outline:2px solid var(--coral);outline-offset:-1px;border-color:#0000}.g button:focus-visible,.gv button:focus-visible,.g a:focus-visible,.gv a:focus-visible{outline:2px solid var(--coral);outline-offset:2px}@media (width<=860px){.g-grid{grid-template-columns:1fr}.v-body{flex-direction:column}.v-notes{border-left:0;border-top:1px solid var(--rule);width:auto;max-height:45vh}.v-split{flex-direction:column}.v-split .v-stage+.v-stage{border-left:0;border-top:1px solid var(--rule)}.v-widths{order:3;width:100%;overflow-x:auto}}@media (prefers-reduced-motion:reduce){.g-card{animation:none}.g-thumb,.g-open{transition:none}}*,:before,:after{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;margin:0}@keyframes jamoBounce{0%,60%,to{opacity:.6;transform:translateY(0)}30%{opacity:1;transform:translateY(-45%)}}@keyframes jamoHop{0%,to{transform:translateY(0)}30%{transform:translateY(-7px)}50%{transform:translateY(0)}60%{transform:translateY(-3px)}75%{transform:translateY(0)}}@keyframes jamoBob{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes jamoJolt{0%,70%,to{transform:scale(1)translateY(0)}75%{transform:scale(1.08)translateY(-6px)}85%{transform:scale(1)translateY(0)}}@keyframes jamoTilt{0%,to{transform:rotate(-9deg)}50%{transform:rotate(-5deg)}}@keyframes jamoDraw{0%{stroke-dashoffset:24px}to{stroke-dashoffset:0}}@keyframes jamoWobble{0%,to{transform:rotate(-10deg)}50%{transform:rotate(12deg)}}@keyframes jamoTwinkle{0%,to{opacity:.2;transform:scale(.4)rotate(0)}50%{opacity:1;transform:scale(1)rotate(45deg)}}@keyframes jamoConfetti{0%{opacity:0;transform:translate(0)rotate(0)}10%{opacity:1}to{transform:translate(var(--x),var(--y)) rotate(var(--r));opacity:0}}@keyframes jamoTrace{0%{stroke-dashoffset:100px}to{stroke-dashoffset:0}}@keyframes jamoScan{0%,to{transform:translate(-4%)}50%{transform:translate(4%)}}@keyframes jamoPop{0%{transform:scale(1)}35%{transform:scale(1.08)}to{transform:scale(1)}}@keyframes jamoBulk{0%{transform:scale(0)}60%{transform:scale(1.25)}80%{transform:scale(.92)}to{transform:scale(1)}}@keyframes jamoListenSway{0%,to{transform:rotate(-4deg)translateY(0)}50%{transform:rotate(-3deg)translateY(-1.5px)}}@keyframes jamoListenIn{0%{transform:translateX(var(--dx)) scale(1.15);opacity:0}35%{opacity:1}to{opacity:0;transform:translate(0)scale(.8)}}
