:root{--yellow: #FFC800;--blue: #1E4FE0;--red: #FF4A1C;--green: #3E7B3A;--ink: #111;--white: #fff;--paper: #f6f2e7;--f-display: "Space Grotesk", system-ui, sans-serif;--f-mono: "IBM Plex Mono", ui-monospace, monospace;--f-report: "Archivo Narrow", "Arial Narrow", sans-serif;--f-pixel: "Press Start 2P", var(--f-mono)}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{min-height:100svh;background:var(--yellow);color:var(--ink);font-family:var(--f-display);overflow-x:hidden;-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}.nfc{position:relative;min-height:100svh;max-width:460px;margin:0 auto;padding:max(18px,env(safe-area-inset-top)) 16px max(22px,env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:14px}.nfc-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background-image:linear-gradient(rgba(17,17,17,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(17,17,17,.08) 1px,transparent 1px);background-size:32px 32px}.rb{position:absolute;display:block;border-radius:999px}.rb-a{width:46vmax;height:7vmax;background:var(--red);top:8%;right:-18vmax;rotate:-28deg}.rb-b{width:40vmax;height:6vmax;background:var(--blue);bottom:6%;left:-16vmax;rotate:22deg}.nfc-hi{text-align:center;font:400 9px/1.6 var(--f-pixel);text-transform:uppercase;letter-spacing:.04em}.tcard{perspective:1200px}.tc-inner{position:relative;transform-style:preserve-3d;transform:rotateX(var(--rx, 0deg)) rotateY(calc(var(--ry, 0deg) + var(--flip, 0deg)));transition:transform .6s cubic-bezier(.2,.9,.3,1.15)}.tc-inner.is-flipped{--flip: 180deg}.tc-front,.tc-back{transition:visibility 0s .25s}.tc-front *,.tc-back *{backface-visibility:hidden;-webkit-backface-visibility:hidden}.tc-inner.is-flipped .tc-front{visibility:hidden}.tc-inner:not(.is-flipped) .tc-back{visibility:hidden}.tc-face{border:4px solid var(--ink);border-radius:18px;box-shadow:8px 8px 0 var(--ink);backface-visibility:hidden;-webkit-backface-visibility:hidden}.tc-front{position:relative;padding:12px;background:linear-gradient(160deg,#fff6c9,#ffe27a 45%,#ffd23f);overflow:hidden}.tc-front:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;mix-blend-mode:color-dodge;opacity:.5;background:radial-gradient(circle at var(--hx, 50%) var(--hy, 40%),rgba(255,255,255,.75),transparent 45%),linear-gradient(115deg,transparent 30%,rgba(255,74,28,.25) 42%,rgba(30,79,224,.25) 52%,rgba(62,123,58,.25) 62%,transparent 72%);background-size:100% 100%,260% 260%;animation:holo 6s ease-in-out infinite alternate}@keyframes holo{0%{background-position:0 0,0% 0%}to{background-position:0 0,100% 100%}}.tc-back{position:absolute;top:0;right:0;bottom:0;left:0;transform:rotateY(180deg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:18px;background:var(--paper)}.tc-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.tc-name{font:700 30px/1 var(--f-report);text-transform:uppercase;letter-spacing:.01em}.tc-type{padding:5px 9px;border:2px solid var(--ink);border-radius:99px;background:var(--white);font:500 11px/1 var(--f-mono);white-space:nowrap}.tc-art{position:relative;height:210px;border:3px solid var(--ink);border-radius:10px;overflow:hidden;background:var(--blue)}.tc-city{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;image-rendering:pixelated}.tc-me{position:absolute;left:calc(50% - 44px);bottom:10px;width:88px;height:132px;z-index:2;touch-action:manipulation}.tc-me img{width:100%;height:100%;object-fit:contain;object-position:bottom;image-rendering:pixelated;filter:drop-shadow(3px 3px 0 rgba(0,0,0,.35))}.tc-say{position:absolute;z-index:3;left:50%;top:12px;translate:-50% 0;max-width:86%;padding:7px 11px;background:var(--white);border:2px solid var(--ink);border-radius:10px;font:500 12px/1.3 var(--f-mono);text-align:center;white-space:nowrap}.tc-say:after{content:"";position:absolute;left:50%;bottom:-7px;width:10px;height:10px;margin-left:-5px;background:var(--white);border:solid var(--ink);border-width:0 2px 2px 0;transform:rotate(45deg)}.tc-heart{position:absolute;left:0;top:0;z-index:3;font-style:normal;font-size:18px;color:var(--red);pointer-events:none;text-shadow:1px 1px 0 var(--ink)}.tc-sheen{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;background:linear-gradient(120deg,transparent 40%,rgba(255,255,255,.18) 50%,transparent 60%);background-size:300% 100%;animation:sheen 4s linear infinite}@keyframes sheen{0%{background-position:150% 0}to{background-position:-150% 0}}.tc-role{margin:10px 2px 8px;font:500 15px/1.25 var(--f-mono)}.tc-role b{color:var(--blue)}.tc-moves{list-style:none;display:grid;gap:6px}.tc-moves li{display:grid;grid-template-columns:96px 1fr auto;align-items:center;gap:8px;padding:7px 10px;background:#ffffffb3;border:2px solid var(--ink);border-radius:10px}.tc-moves b{font:400 9px/1.3 var(--f-pixel);text-transform:uppercase}.tc-moves span{font:400 12.5px/1.25 var(--f-mono)}.tc-moves i{font-style:normal;font-size:16px}.tc-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px}.tc-status{display:inline-flex;align-items:center;gap:7px;font:500 11.5px/1 var(--f-mono)}.tc-status i{width:9px;height:9px;border-radius:50%;background:#28c840;box-shadow:0 0 #28c84099;animation:ping 1.8s infinite}@keyframes ping{70%{box-shadow:0 0 0 8px #28c84000}to{box-shadow:0 0 #28c84000}}.tc-flip{padding:7px 12px;border:2px solid var(--ink);border-radius:99px;background:var(--ink);color:var(--yellow);font:500 12px/1 var(--f-mono)}.tb-k{font:400 10px/1.5 var(--f-pixel);text-transform:uppercase;text-align:center}.tb-qr{padding:12px;background:var(--paper);border:3px solid var(--ink);border-radius:10px}.tb-qr img,.tb-qr canvas{display:block;width:min(220px,56vw)!important;height:auto!important;image-rendering:pixelated}.tb-url{font:500 14px/1 var(--f-mono)}.nfc-save{display:flex;align-items:center;gap:14px;padding:14px 16px;background:var(--ink);color:var(--white);border-radius:16px;box-shadow:6px 6px 0 var(--red);transition:translate .15s,box-shadow .15s}.nfc-save:active{translate:3px 3px;box-shadow:3px 3px 0 var(--red)}.ns-ic{flex:none;width:44px;height:44px;display:grid;place-items:center;border-radius:12px;background:var(--yellow);color:var(--ink);font:700 26px/1 var(--f-display)}.nfc-save b{display:block;font:700 22px/1.05 var(--f-report);text-transform:uppercase}.nfc-save em{display:block;margin-top:3px;font:400 11.5px/1.3 var(--f-mono);font-style:normal;color:#ccc}.nfc-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.nb{position:relative;display:grid;grid-template-columns:34px 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center;min-height:64px;padding:10px 12px;text-align:left;border:3px solid var(--ink);border-radius:14px;box-shadow:4px 4px 0 var(--ink);transition:translate .15s,box-shadow .15s}.nb:active{translate:2px 2px;box-shadow:2px 2px 0 var(--ink)}@media(hover:hover){.nb:hover{translate:-2px -2px;box-shadow:6px 6px 0 var(--ink)}}.nb canvas{grid-row:1 / 3;width:32px;height:32px;image-rendering:pixelated}.nb b{font:700 17px/1 var(--f-report);text-transform:uppercase}.nb span{grid-column:2;font:400 10.5px/1.25 var(--f-mono);opacity:.8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nb-in{background:#0a66c2;color:var(--white)}.nb-gm{background:var(--white)}.nb-ol{background:#0f6cbd;color:var(--white)}.nb-pf{background:var(--paper)}.nb-cv{background:var(--white)}.nb-sh{background:var(--red);color:var(--white)}.nfc-foot{text-align:center;font:400 11px/1.4 var(--f-mono)}.nfc-foot a{border-bottom:1.5px solid var(--ink)}.nfc-toast{position:fixed;z-index:20;left:50%;bottom:max(18px,env(safe-area-inset-bottom));translate:-50% 0;display:flex;flex-direction:column;gap:4px;padding:12px 16px;min-width:230px;background:var(--ink);color:var(--white);border:3px solid var(--yellow);border-radius:12px;opacity:0;visibility:hidden}.nfc-toast b{font:400 9px/1 var(--f-pixel);color:var(--yellow);text-transform:uppercase}.nfc-toast span{font:500 13px/1.2 var(--f-mono)}.nfc-confetti{position:fixed;z-index:30;top:0;width:8px;height:8px;pointer-events:none}@media(min-width:700px){.nfc{justify-content:center;padding-top:40px;padding-bottom:40px}.tc-art{height:230px}}@media(max-width:360px){.tc-name{font-size:25px}.tc-moves li{grid-template-columns:82px 1fr auto}.nb span{display:none}}@media(prefers-reduced-motion:reduce){.tc-front:after,.tc-sheen,.tc-status i{animation:none}}
