@font-face{font-family:Departure Mono;src:url(/fonts/DepartureMono-Regular.woff2) format("woff2");font-weight:400;font-display:swap}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}body{--blush: #f2d5cb;--ground: #56904f;--pink: #f4a7be;--pink-seam: #e2879f;--crease: rgba(16, 40, 26, .15);--ink: #10281a;--letter-cream: #f3f1e8;--letter-blue: #8fb2de;--letter-tan: #e3cfb9;--mark: #3d6fd8;--head-ink: #10281a;--rule-ink: rgba(16, 40, 26, .3);--font-body: "Liter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-heading: "Hanken Grotesk", -apple-system, BlinkMacSystemFont, sans-serif;--font-hand: "Slackside One", "Bradley Hand", cursive;--font-display: "Departure Mono", ui-monospace, SFMono-Regular, Menlo, monospace;font-family:var(--font-body);color:var(--ink);background:var(--blush);font-size:18px;line-height:1.6;overflow:hidden}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.lab-stage{position:relative;height:100svh;overflow:hidden;background:var(--blush);isolation:isolate}.lab-canvas>.lab-grain{left:-2000px;top:-2000px;width:6000px;height:6000px;z-index:10;pointer-events:none;opacity:.9;mix-blend-mode:multiply;background-size:calc(220px / var(--fit, 1)) calc(220px / var(--fit, 1)),calc(140px / var(--fit, 1)) calc(140px / var(--fit, 1));background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='c'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.32' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23c)' opacity='0.34'/%3E%3C/svg%3E"),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='f'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.1' numOctaves='1' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23f)' opacity='0.2'/%3E%3C/svg%3E")}.lab-canvas{position:absolute;left:50%;top:50%;width:var(--cw, 1000px);height:var(--ch, 560px);z-index:1;transform:translate(-50%,-50%) translateY(var(--shift, 0)) scale(var(--fit, 1));transform-origin:center center}.lab-canvas>*{position:absolute;top:0;left:0}.lab-canvas>.lab-ground{left:-1600px;top:var(--horizon);width:4200px;height:1600px;background:var(--ground);z-index:0}.env-shadow{width:calc(var(--ew) * 1.06);height:calc(var(--ew) * .05);z-index:1;border-radius:50%;background:radial-gradient(closest-side,rgba(16,40,26,.32),transparent);opacity:var(--shadow, 1);pointer-events:none}.env-scene{width:var(--ew);height:var(--eh);perspective:calc(var(--ew) * 3.2);z-index:3}.env{width:100%;height:100%;padding:0;border:0;background:none;cursor:pointer;position:relative;transform-style:preserve-3d;transform:translateY(var(--lift, 0px)) rotateY(var(--flip, 0deg)) scale(var(--zoom, 1))}.lab-canvas[data-done] .env{cursor:grab}.lab-canvas[data-done] .env:active{cursor:grabbing}.lab-canvas[data-done] .env,.lab-canvas[data-done] .sheet{touch-action:none}.env:focus-visible{outline:3px solid var(--ink);outline-offset:10px}.env-face{position:absolute;inset:0;backface-visibility:hidden}.env-front{display:grid;grid-template-columns:1fr auto;gap:calc(20px * var(--face));padding:calc(34px * var(--face)) calc(32px * var(--face));background:var(--pink);border-radius:calc(7px * var(--face));box-shadow:0 16px 30px #10281a29;overflow:hidden}.env-back{transform:rotateY(180deg);transform-style:preserve-3d;background:none;overflow:visible}.env-inside{position:absolute;inset:0;background:var(--pink);border-radius:calc(7px * var(--face));box-shadow:inset 0 0 0 1.5px var(--crease);transform:translateZ(1px)}.env-fold{position:absolute;transform-style:preserve-3d}.env-fold-t{left:0;top:0;width:100%;height:var(--top-h);transform-origin:50% 0%;transform:translateZ(2px) rotateX(var(--open-t, 0deg))}.env-fold-t i{border-radius:calc(7px * var(--face)) calc(7px * var(--face)) 0 0;clip-path:polygon(0 0,100% 0,96% 100%,4% 100%)}.env-fold i{display:block;width:100%;height:100%;background:var(--pink)}.env-fold-b{inset:0;transform-origin:50% 100%;transform:translateZ(2px) rotateX(var(--open-b, 0deg))}.env-fold-b i{border-radius:calc(7px * var(--face))}.env-fold-l,.env-fold-r{top:0;width:var(--tab-w);height:100%}.env-fold-l{left:0;transform-origin:0% 50%;transform:translateZ(3px) rotateY(var(--open-l, 0deg))}.env-fold-r{right:0;transform-origin:100% 50%;transform:translateZ(3px) rotateY(var(--open-r, 0deg))}.env-fold-l i{clip-path:polygon(0 0,100% 9%,100% 91%,0 100%)}.env-fold-r i{clip-path:polygon(0 9%,100% 0,100% 100%,0 91%)}.env-heart{position:absolute;left:50%;top:calc(22% - 50px * var(--face));width:calc(22px * var(--face));transform:translate(-50%,-50%) translateZ(-.5px) rotateX(180deg);backface-visibility:hidden}.env-heart svg{display:block;width:100%;height:auto}.env-heart-hi{fill:#ffffff8c;transform:translateY(1px)}.env-heart-lo{fill:#10281a2e;transform:translateY(-1px)}.env-heart-fill{fill:var(--pink-seam)}.env-seal{position:absolute;left:50%;top:50%;width:calc(34px * var(--face));height:calc(34px * var(--face));margin:calc(-17px * var(--face)) 0 0 calc(-17px * var(--face));border-radius:50%;background:var(--pink-seam);opacity:var(--seal, 1);transform:translateZ(1px)}.env-address{align-self:end;text-align:left;padding-left:calc(50px * var(--face));padding-bottom:calc(20px * var(--face))}.env-name{display:block;font-family:var(--font-hand);font-size:calc(2.6rem * var(--face));font-weight:400;line-height:1.25;color:var(--ink)}.env-title{display:block;font-family:var(--font-hand);font-size:calc(1.48rem * var(--face));line-height:1.3;color:#10281a94;margin-top:calc(4px * var(--face));max-width:24ch}.env-blurb{display:block;font-family:var(--font-hand);font-size:calc(1.36rem * var(--face));line-height:1.15;color:#10281ab8;margin-top:calc(12px * var(--face));max-width:26ch}.env-stamp{position:relative;align-self:start}.env-stamp-paper{--r: calc(7px * var(--face));display:inline-block;padding:var(--r);background:radial-gradient(50% 50%,#0000 65%,var(--letter-cream) 67%) round var(--r) var(--r) / calc(2 * var(--r)) calc(2 * var(--r));filter:drop-shadow(0 1px 2px rgba(16,40,26,.16))}.env-photo{display:block;width:calc(126px * var(--face));height:calc(126px * var(--face));object-fit:cover}.env-cancel{position:absolute;width:calc(190px * var(--face, 1));height:calc(124px * var(--face, 1));left:calc(-88px * var(--face, 1));top:calc(44px * var(--face, 1));pointer-events:none;overflow:visible}.env-cancel circle{fill:none;stroke:#10281a73;stroke-width:1.6}.env-cancel text{fill:#10281a80;font-size:9px;letter-spacing:1.4px;font-family:var(--font-heading)}.env-waves path{fill:none;stroke:#10281a73;stroke-width:1.3;stroke-linecap:round}.sheet{width:var(--sheet-w);min-height:var(--sheet-h);padding:calc(18px * var(--sheet-face)) calc(22px * var(--sheet-face)) calc(14px * var(--sheet-face));display:flex;flex-direction:column;border-radius:7px;box-shadow:0 10px 22px #10281a2e;z-index:6;opacity:0;pointer-events:none}.sheet[data-tone=cream]{background:var(--letter-cream)}.sheet[data-tone=blue]{background:var(--letter-blue)}.sheet[data-tone=tan]{background:var(--letter-tan)}.lab-canvas[data-done] .sheet{cursor:grab}.lab-canvas[data-done] .sheet[data-dragging]{cursor:grabbing;z-index:9}.sheet-head{display:flex;margin-top:calc(10px * var(--sheet-face));align-items:baseline;justify-content:center;gap:calc(7px * var(--sheet-face));margin-bottom:calc(19px * var(--sheet-face))}.sheet-icon{display:block}.sheet-icon svg{display:block;--unit: calc(.6667px * var(--sheet-face));width:calc(var(--vw) * var(--unit));height:calc(var(--vh) * var(--unit));fill:none;stroke:var(--head-ink);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.sheet-head h2{font-family:var(--font-display);font-size:calc(.8rem * var(--sheet-face));font-weight:400;text-transform:uppercase;letter-spacing:.1em;color:var(--head-ink);margin:0}.sheet-items{list-style:none;margin:0;padding:0;flex:1;display:flex;flex-direction:column;justify-content:flex-start;gap:calc(6px * var(--sheet-face))}.sheet-items:before{content:"";flex:none;align-self:center;width:67%;height:calc(3px * var(--sheet-face));margin-bottom:calc(12px * var(--sheet-face));background:radial-gradient(circle,var(--rule-ink) 0 1.2px,rgba(255,255,255,0) 1.5px) repeat-x center / calc(9px * var(--sheet-face)) calc(3px * var(--sheet-face));filter:drop-shadow(0 1px 0 rgba(255,255,255,.45))}.sheet-items li{margin:0}.sheet-items a{display:grid;grid-template-columns:calc(64px * var(--sheet-face)) 1fr;gap:calc(11px * var(--sheet-face));align-items:center;padding:calc(4px * var(--sheet-face)) calc(3px * var(--sheet-face));text-decoration:none;color:var(--ink)}.sheet-items a:hover,.sheet-items a:focus-visible{color:var(--mark)}.sheet-items a:hover .sheet-glyph svg,.sheet-items a:focus-visible .sheet-glyph svg{stroke:var(--mark)}.sheet-thumb{width:calc(64px * var(--sheet-face));height:calc(48px * var(--sheet-face));object-fit:cover;background:#10281a14;box-shadow:0 0 0 calc(3px * var(--sheet-face)) #fff,0 2px 5px #10281a38}.sheet-glyph{display:grid;place-items:center}.sheet-glyph svg{--unit: calc(.9167px * var(--sheet-face));width:calc(var(--vw) * var(--unit));height:calc(var(--vh) * var(--unit));fill:none;stroke:var(--head-ink);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.sheet-text{min-width:0;align-self:start}.sheet-title{font-family:var(--font-display);font-size:calc(.72rem * var(--sheet-face));line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.sheet-meta{display:block;font-family:var(--font-display);font-size:calc(.56rem * var(--sheet-face));color:#10281a8c;margin-top:2px}.sheet-all{margin-top:calc(14px * var(--sheet-face));font-family:var(--font-display);font-size:calc(.56rem * var(--sheet-face));text-transform:uppercase;letter-spacing:.1em;text-decoration:none;color:var(--head-ink);text-align:center}.sheet-all:hover,.sheet-all:focus-visible{color:var(--mark)}.sticker{display:flex;align-items:center;gap:calc(6px * var(--sticker-face));padding:calc(7px * var(--sticker-face)) calc(12px * var(--sticker-face)) calc(7px * var(--sticker-face)) calc(9px * var(--sticker-face));background:var(--letter-cream);border-radius:999px;box-shadow:0 0 0 3px var(--letter-cream),0 5px 12px #10281a33;font-family:var(--font-display);font-size:calc(.62rem * var(--sticker-face));color:var(--ink);white-space:nowrap;cursor:grab;touch-action:none;user-select:none;z-index:11;opacity:0;pointer-events:none}.lab-canvas[data-done] .sheet,.lab-canvas[data-done] .sticker{pointer-events:auto}.sticker[data-dragging]{cursor:grabbing;z-index:12}.sticker:focus-visible{outline:3px solid var(--mark);outline-offset:6px}.sticker-art{background:none;box-shadow:none;padding:0;border-radius:0;text-shadow:none}.sticker-art a{display:block;line-height:0;-webkit-tap-highlight-color:transparent}.sticker-art a,.sticker-art img{-webkit-user-drag:none;user-select:none}.sticker-art img{display:block;width:calc(var(--art-w, 94px) * var(--sticker-face, 1));height:auto;filter:url(#die-cut) drop-shadow(0 5px 10px rgba(16,40,26,.32))}.sticker-tip{position:absolute;left:50%;bottom:calc(100% + 9px);transform:translate(-50%);white-space:nowrap;padding:5px 9px;background:var(--ink);color:var(--letter-cream);font-family:var(--font-display, monospace);font-size:.56rem;letter-spacing:.06em;text-transform:uppercase;border-radius:2px;opacity:0;pointer-events:none;transition:opacity .15s}.sticker-art:hover .sticker-tip,.sticker-art:focus-within .sticker-tip{opacity:1}.sticker-emoji{font-size:calc(1rem * var(--sticker-face));line-height:1}.heart-stream{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:25}.heart-stream span{position:absolute;width:20px;height:20px;margin:-10px 0 0 -10px;color:var(--pink-seam);animation:heart-rise 1.7s cubic-bezier(.2,.6,.3,1) forwards;will-change:transform,opacity}.heart-stream svg{display:block;width:100%;height:100%;fill:currentColor}@keyframes heart-rise{0%{opacity:0;transform:translate(0) scale(.35) rotate(var(--r, 0deg))}14%{opacity:1}to{opacity:0;transform:translate(var(--dx, 0),-170px) scale(1.1) rotate(var(--r, 0deg))}}.env-heart{cursor:pointer}.lab-hint{position:fixed;left:0;right:0;bottom:2.5rem;text-align:center;font-size:.66rem;text-transform:uppercase;letter-spacing:.16em;color:#fffc;opacity:var(--hint, 1);transition:opacity .15s linear;pointer-events:none;margin:0;z-index:15}.lab-hint:before{content:"";display:block;width:0;height:0;margin:0 auto .5em;border-left:.34em solid transparent;border-right:.34em solid transparent;border-bottom:.38em solid currentColor;opacity:.65;animation:hint-nudge 2.4s ease-in-out infinite}@keyframes hint-nudge{0%,62%,to{transform:translateY(0)}76%{transform:translateY(-3px)}}@media(prefers-reduced-motion:reduce){.lab-hint:before{animation:none}}.env-name,.env-title,.env-blurb{text-shadow:-1px -1px 0 rgba(16,40,26,.07),0 1px 0 rgba(255,255,255,.34)}.env-cancel{filter:drop-shadow(-1px -1px 0 rgba(16,40,26,.14)) drop-shadow(1px 1px 0 rgba(255,255,255,.38))}.sheet-head h2,.sheet-title,.sheet-meta,.sheet-all,.sticker{text-shadow:-1px -1px 0 rgba(16,40,26,.07),0 1px 0 rgba(255,255,255,.34)}.sheet-icon svg{filter:drop-shadow(-1px -1px 0 rgba(16,40,26,.07)) drop-shadow(0 1px 0 rgba(255,255,255,.34))}.lab-footer{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;justify-content:space-between;gap:1.5rem;padding:.85rem 1.25rem;font-family:var(--font-display);font-size:.6rem;letter-spacing:.09em;text-transform:uppercase}.lab-footer nav{display:flex;gap:1rem}.lab-footer a,.lab-footer button{font:inherit;letter-spacing:inherit;text-transform:inherit;color:#ffffffc7;text-decoration:none;background:none;border:0;padding:0;cursor:pointer}.lab-footer a:hover,.lab-footer button:hover{color:#fff;text-decoration:underline}.lab-footer a:focus-visible,.lab-footer button:focus-visible{outline:2px solid #fff;outline-offset:4px}.lab-topbar{position:fixed;left:0;right:0;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:.85rem 1.25rem;font-family:var(--font-display);font-size:.6rem;letter-spacing:.09em;text-transform:uppercase;opacity:0;pointer-events:none;transition:opacity .35s ease-out}:root.card-open .lab-topbar{opacity:1;pointer-events:auto}.lab-topbar-name,.lab-topbar button{font:inherit;letter-spacing:inherit;text-transform:inherit;color:var(--head-ink)}.lab-topbar-name{text-decoration:none}.lab-topbar button{background:none;border:0;padding:0;cursor:pointer}.lab-topbar-name:hover,.lab-topbar button:hover{text-decoration:underline}.lab-topbar-name:focus-visible,.lab-topbar button:focus-visible{outline:2px solid var(--ink);outline-offset:4px}@media(prefers-reduced-motion:reduce){.lab-topbar{transition:none}}.lab-modal{position:fixed;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:#10281a8c}.lab-modal[hidden]{display:none}.lab-modal-panel{position:relative;width:min(30rem,100%);max-height:80svh;overflow-y:auto;padding:1.75rem 1.5rem 1.5rem;background-color:var(--letter-cream);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='p'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.34' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23p)' opacity='0.3'/%3E%3C/svg%3E");background-blend-mode:multiply;border-radius:7px;box-shadow:0 24px 60px #10281a59,inset 0 1px #ffffffb3,inset 0 -14px 22px -14px #10281a29;font-size:.8rem;line-height:1.55}.lab-modal-panel h2,.lab-modal-panel h3{text-shadow:-1px -1px 0 rgba(16,40,26,.06),0 1px 0 rgba(255,255,255,.45)}.lab-modal-panel code{font-family:var(--font-display);font-size:.92em;padding:.1em .35em;background:#10281a0f;box-shadow:inset 0 1px #fff9}.lab-modal-panel h2{font-family:var(--font-display);font-size:.95rem;font-weight:400;letter-spacing:.1em;text-transform:uppercase;margin:0 0 1.25rem}.lab-modal-panel h3{font-family:var(--font-display);font-size:.66rem;font-weight:400;letter-spacing:.12em;text-transform:uppercase;color:var(--mark);margin:0 0 .35rem}.lab-modal-panel .lab-modal-role{font-family:var(--font-display);font-size:.62rem;letter-spacing:.09em;text-transform:uppercase;color:#10281a8c;margin:-.15rem 0 .6rem}.lab-modal-panel section{margin-bottom:1.25rem}.lab-modal-panel p{margin:0 0 .35rem}.lab-modal-panel a{color:var(--mark)}.lab-modal-foot{font-family:var(--font-display);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:#10281a8c;margin:0}.lab-modal-foot .claude-logo{width:1.5em;height:1.5em;vertical-align:-.42em;opacity:.7;transition:opacity .3s}.lab-modal-foot:hover .claude-logo{opacity:1}.lab-modal-close{position:absolute;top:.4rem;right:.6rem;background:none;border:0;font-size:1.5rem;line-height:1;color:#10281a80;cursor:pointer}.lab-modal-close:hover{color:var(--ink)}
