:root{color-scheme:dark;--ipg-font-display: "Press Start 2P", ui-sans-serif, system-ui, sans-serif;--ipg-font-body: "VT323", ui-monospace, "Segoe UI", monospace;--ipg-bg-1: #0a0014;--ipg-bg-2: #150022;--ipg-bg-3: #1c0a30;--ipg-accent: #ff2e88;--ipg-accent-2: #b026ff;--ipg-accent-3: #05d9e8;--ipg-gold: #ffd60a;--ipg-text: #f6f1ff;--ipg-text-dim: rgba(246, 241, 255, .72);--ipg-text-faint: rgba(246, 241, 255, .5);--ipg-cabinet-bg: #170b2c;--ipg-card-bg: #1d0f38;--ipg-card-border: #b026ff;--ipg-panel-bg: #241542;--ipg-panel-border: #402a68;--ipg-bezel-dark: #0a0414;--ipg-success: #39ff6a;--ipg-shadow: 8px 8px 0 rgba(0, 0, 0, .5);--ipg-floor-1: #1c0e34;--ipg-floor-2: #241442}:root[data-theme=light]{color-scheme:light;--ipg-bg-1: #fff2da;--ipg-bg-2: #ffe6c2;--ipg-bg-3: #ffd9ae;--ipg-text: #2b1050;--ipg-text-dim: rgba(43, 16, 80, .72);--ipg-text-faint: rgba(43, 16, 80, .52);--ipg-cabinet-bg: #f4c98a;--ipg-card-bg: #fff6e6;--ipg-card-border: #b026ff;--ipg-panel-bg: #fff0d4;--ipg-panel-border: #e3c290;--ipg-bezel-dark: #6b4a1e;--ipg-shadow: 8px 8px 0 rgba(90, 40, 10, .3);--ipg-floor-1: #ffe1ae;--ipg-floor-2: #ffd18c}*{box-sizing:border-box}html,body{margin:0;min-height:100%}body{font-family:var(--ipg-font-body);font-size:18px;background:var(--ipg-bg-1);color:var(--ipg-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100svh}button,select,input{font-family:inherit}button{cursor:pointer}::selection{background:var(--ipg-accent);color:#fff}:focus-visible{outline:2px solid var(--ipg-accent-3);outline-offset:2px}.ipg-card,.ipg-board,.ipg-popover,.ipg-win-card{clip-path:polygon(0 var(--notch),var(--notch) var(--notch),var(--notch) 0,calc(100% - var(--notch)) 0,calc(100% - var(--notch)) var(--notch),100% var(--notch),100% calc(100% - var(--notch)),calc(100% - var(--notch)) calc(100% - var(--notch)),calc(100% - var(--notch)) 100%,var(--notch) 100%,var(--notch) calc(100% - var(--notch)),0 calc(100% - var(--notch)))}.ipg-page{min-height:100svh;display:grid;place-items:center;padding:32px 24px;position:relative;overflow-x:hidden;background:var(--ipg-bg-1)}.ipg-page:before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background-image:repeating-conic-gradient(var(--ipg-floor-1) 0% 25%,var(--ipg-floor-2) 0% 50%);background-size:44px 44px;-webkit-mask-image:linear-gradient(to top,black 0%,black 18%,transparent 46%);mask-image:linear-gradient(to top,black 0%,black 18%,transparent 46%)}.ipg-cabinet-shadow{position:relative;z-index:1;filter:drop-shadow(var(--ipg-shadow));animation:ipg-card-in .45s cubic-bezier(.2,.8,.2,1)}.ipg-card{--notch: 18px;position:relative;z-index:1;width:min(96vw,1040px);display:flex;flex-direction:column;gap:18px;background:var(--ipg-card-bg);border:4px solid var(--ipg-card-border);padding:24px}@keyframes ipg-card-in{0%{opacity:0;transform:translateY(10px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}.ipg-chrome{display:flex;flex-direction:column;gap:14px;padding-bottom:14px;border-bottom:4px solid var(--ipg-bezel-dark);position:relative}.ipg-chrome:after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:2px;background:repeating-linear-gradient(90deg,var(--ipg-accent-3) 0 8px,var(--ipg-accent) 8px 16px,var(--ipg-gold) 16px 24px)}.ipg-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.ipg-brand{display:flex;align-items:center;gap:14px}.ipg-logo{font-size:30px;line-height:1;filter:drop-shadow(0 0 10px rgba(255,46,136,.7))}.ipg-brand h1{margin:0;font-family:var(--ipg-font-display);font-size:17px;font-weight:400;letter-spacing:.5px;text-transform:uppercase;line-height:1.4;background:linear-gradient(90deg,var(--ipg-accent) 0%,var(--ipg-gold) 50%,var(--ipg-accent-3) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 0 18px rgba(255,46,136,.45);animation:ipg-marquee-flicker 5s ease-in-out infinite}@keyframes ipg-marquee-flicker{0%,92%,to{filter:brightness(1)}94%{filter:brightness(.82)}96%{filter:brightness(1.08)}}.ipg-subtitle{font-family:var(--ipg-font-body);font-size:15px;color:var(--ipg-text-faint);letter-spacing:.3px}.ipg-header-actions{display:flex;gap:10px}.ipg-icon-btn{width:40px;height:40px;border-radius:999px;border:2px solid var(--ipg-accent-3);background:radial-gradient(circle at 30% 25%,#ffffff38,#05d9e81a 60%);color:var(--ipg-text);display:grid;place-items:center;font-size:16px;box-shadow:0 0 10px #05d9e873,inset 0 1px #fff3;transition:transform .1s ease,box-shadow .2s ease,filter .2s ease}.ipg-icon-btn:hover{filter:brightness(1.15);box-shadow:0 0 16px #05d9e8b3,inset 0 1px #ffffff40}.ipg-icon-btn:active{transform:scale(.92) translateY(1px)}.ipg-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.ipg-field{display:flex;align-items:center;gap:8px;font-family:var(--ipg-font-display);font-size:10px;text-transform:uppercase;color:var(--ipg-text-dim)}.ipg-field select{background:var(--ipg-panel-bg);color:var(--ipg-text);border:2px solid var(--ipg-panel-border);border-radius:4px;padding:10px 12px;font-family:var(--ipg-font-body);font-size:17px;outline:none}.ipg-field select option{font-family:var(--ipg-font-body);font-size:16px;color:#171b2e;background:#fff}.ipg-btn{border:2px solid rgba(255,255,255,.18);background:linear-gradient(180deg,#ffffff29,#fff0 45%),var(--ipg-panel-bg);color:var(--ipg-text);border-radius:4px;padding:11px 16px;font-family:var(--ipg-font-display);font-size:10.5px;text-transform:uppercase;letter-spacing:.4px;line-height:1;box-shadow:0 4px #00000059,inset 0 1px #ffffff1f;transition:transform .08s ease,box-shadow .15s ease,filter .15s ease}.ipg-btn:hover:not(:disabled){filter:brightness(1.1)}.ipg-btn:active:not(:disabled){transform:translateY(3px);box-shadow:0 1px #00000059,inset 0 1px #ffffff1f}.ipg-btn:disabled{opacity:.5;cursor:not-allowed}.ipg-btn-primary{background:linear-gradient(180deg,#ffffff47,#fff0 45%),linear-gradient(180deg,var(--ipg-accent),#b8134f);border-color:#ffffff59;color:#fff;box-shadow:0 4px #7a0d33,0 0 18px #ff2e888c,inset 0 1px #ffffff40}.ipg-btn-primary:active:not(:disabled){box-shadow:0 1px #7a0d33,0 0 10px #ff2e8880,inset 0 1px #ffffff40}.ipg-btn-ghost{background:linear-gradient(180deg,#ffffff29,#fff0 45%),linear-gradient(180deg,var(--ipg-accent-3),#068a97);border-color:#ffffff4d;color:#04222a;box-shadow:0 4px #045862,0 0 14px #05d9e880,inset 0 1px #ffffff4d}.ipg-btn-ghost:active:not(:disabled){box-shadow:0 1px #045862,0 0 8px #05d9e873,inset 0 1px #ffffff4d}.ipg-btn-icon{width:42px;padding:11px 0;text-align:center;background:linear-gradient(180deg,#ffffff29,#fff0 45%),linear-gradient(180deg,var(--ipg-accent-2),#6a0fb0);border-color:#ffffff4d;color:#fff;box-shadow:0 4px #4a0b7d,0 0 14px #b026ff80,inset 0 1px #ffffff40}.ipg-btn-icon.is-active{filter:brightness(1.25)}.ipg-layout{display:grid;grid-template-columns:1fr 260px;gap:22px;align-items:start}@media (max-width: 768px){.ipg-layout{grid-template-columns:1fr}}.ipg-board-wrap{display:grid;place-items:center}.ipg-board{--notch: 12px;position:relative;background:#000;border:6px solid var(--ipg-bezel-dark);box-shadow:inset 0 0 0 3px #05d9e88c,inset 0 0 26px #000000d9;touch-action:manipulation;overflow:hidden}.ipg-board:before{content:"";position:absolute;top:0;left:0;width:42%;height:30%;background:linear-gradient(135deg,rgba(255,255,255,.1) 0%,rgba(255,255,255,.1) 55%,transparent 56%);z-index:4;pointer-events:none}.ipg-board:after{content:"";position:absolute;inset:0;z-index:5;pointer-events:none;background-image:repeating-linear-gradient(to bottom,#0000 0 2px,#0000002e 3px,#0000 4px);mix-blend-mode:overlay}.ipg-tile{position:absolute;top:0;left:0;border-radius:3px;background-repeat:no-repeat;overflow:hidden;display:grid;place-items:end end;padding:6px;-webkit-user-select:none;user-select:none;border:1px solid rgba(5,217,232,.35);box-shadow:0 6px 16px #00000073;transition:transform .22s cubic-bezier(.2,.8,.2,1),box-shadow .2s ease,filter .2s ease;cursor:not-allowed}.ipg-tile.is-movable{cursor:pointer;box-shadow:0 8px 22px #00000080,0 0 0 2px var(--ipg-accent-3),0 0 14px #05d9e899}.ipg-tile.is-movable:hover{filter:brightness(1.12);box-shadow:0 10px 26px #00000080,0 0 0 2px var(--ipg-gold),0 0 16px #ffd60ab3}.ipg-tile.is-blank{background:repeating-linear-gradient(45deg,rgba(5,217,232,.06),rgba(5,217,232,.06) 6px,transparent 6px,transparent 12px);box-shadow:inset 0 0 0 1px #05d9e840;border-color:transparent;cursor:default}.ipg-tile.is-solved{cursor:default}.ipg-tile.is-solved .ipg-tile-number{opacity:0}.ipg-tile-number{background:#0000008c;border:1px solid rgba(5,217,232,.5);color:var(--ipg-accent-3);font-family:var(--ipg-font-display);font-size:10px;border-radius:4px;padding:3px 6px;text-shadow:0 0 6px currentColor;transition:opacity .2s ease}.ipg-board-status{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:8px;background:#000000b3;color:var(--ipg-accent-3);font-family:var(--ipg-font-body);font-size:18px;z-index:6}.ipg-board-status-error{color:#ff5d7a}.ipg-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.25);border-top-color:var(--ipg-accent-3);border-radius:50%;animation:ipg-spin .8s linear infinite}@keyframes ipg-spin{to{transform:rotate(360deg)}}.ipg-sidebar{display:flex;flex-direction:column;gap:14px}.ipg-stat-card{background:var(--ipg-panel-bg);border:2px solid var(--ipg-panel-border);border-radius:4px;padding:14px 16px}.ipg-stat-title{font-family:var(--ipg-font-display);font-size:10px;text-transform:uppercase;letter-spacing:.6px;color:var(--ipg-gold);text-shadow:0 0 8px rgba(255,214,10,.5);margin-bottom:10px}.ipg-stat-row{display:flex;justify-content:space-between;align-items:baseline;font-family:var(--ipg-font-body);font-size:15px;letter-spacing:.3px;color:var(--ipg-text-dim);padding:3px 0}.ipg-stat-row strong{color:var(--ipg-accent-3);font-size:22px;text-shadow:0 0 8px rgba(5,217,232,.55)}.ipg-status-solved{color:var(--ipg-success)!important;text-shadow:0 0 8px rgba(57,255,106,.6)!important}.ipg-status-progress{color:var(--ipg-gold)!important;text-shadow:0 0 8px rgba(255,214,10,.5)!important}.ipg-progress-track{margin-top:10px;height:8px;border-radius:2px;background:#ffffff14;overflow:hidden;border:1px solid rgba(255,255,255,.1)}.ipg-progress-fill{height:100%;background:repeating-linear-gradient(90deg,transparent 0,transparent 6px,rgba(0,0,0,.25) 6px,rgba(0,0,0,.25) 8px),linear-gradient(90deg,var(--ipg-accent),var(--ipg-accent-3));box-shadow:0 0 8px #05d9e899;transition:width .3s ease}.ipg-reference-card{padding:12px}.ipg-reference-thumb{width:100%;aspect-ratio:1 / 1;object-fit:cover;border-radius:3px;display:block;border:2px solid rgba(5,217,232,.4);box-shadow:0 0 14px #05d9e833}.ipg-popover-backdrop{position:fixed;inset:0;background:#030008b3;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:grid;place-items:center;z-index:50;padding:20px;animation:ipg-fade-in .18s ease}.ipg-popover{--notch: 14px;width:min(92vw,480px);max-height:86vh;overflow-y:auto;background:var(--ipg-card-bg);border:3px solid var(--ipg-card-border);box-shadow:var(--ipg-shadow),0 0 24px #05d9e840;padding:18px;animation:ipg-pop-in .2s cubic-bezier(.2,.8,.2,1)}@keyframes ipg-fade-in{0%{opacity:0}to{opacity:1}}@keyframes ipg-pop-in{0%{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.ipg-popover-header{display:flex;align-items:center;justify-content:space-between;font-family:var(--ipg-font-display);font-size:12px;text-transform:uppercase;color:var(--ipg-gold);text-shadow:0 0 8px rgba(255,214,10,.5);margin-bottom:14px}.ipg-preset-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}.ipg-preset{aspect-ratio:1 / 1;border-radius:4px;border:2px solid transparent;background-size:cover;background-position:center;position:relative;overflow:hidden;cursor:pointer;padding:0;transition:transform .12s ease,border-color .2s ease,box-shadow .2s ease}.ipg-preset:hover{transform:scale(1.03);box-shadow:0 0 14px #05d9e880}.ipg-preset.is-active{border-color:var(--ipg-accent-3);box-shadow:0 0 14px #05d9e899}.ipg-preset span{position:absolute;left:0;right:0;bottom:0;font-family:var(--ipg-font-body);font-size:15px;color:#fff;background:linear-gradient(0deg,rgba(0,0,0,.7),transparent);padding:14px 8px 6px;text-align:left}.ipg-upload-btn{width:100%}.ipg-help-list{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:8px;font-family:var(--ipg-font-body);font-size:17px;color:var(--ipg-text-dim);line-height:1.45}.ipg-win-overlay{position:fixed;inset:0;z-index:60;display:grid;place-items:center;background:#030008bf;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:ipg-fade-in .2s ease}.ipg-confetti-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.ipg-win-card{--notch: 16px;position:relative;z-index:1;width:min(90vw,380px);text-align:center;background:var(--ipg-card-bg);border:3px solid var(--ipg-card-border);box-shadow:var(--ipg-shadow),0 0 40px #ff2e8859;padding:30px 24px;animation:ipg-pop-in .25s cubic-bezier(.2,.8,.2,1)}.ipg-win-badge{display:inline-block;margin-bottom:12px;padding:7px 14px;border-radius:999px;background:#ffd60a26;border:1px solid rgba(255,214,10,.5);color:var(--ipg-gold);font-family:var(--ipg-font-display);font-size:10px;text-transform:uppercase;text-shadow:0 0 8px rgba(255,214,10,.6)}.ipg-win-card h2{margin:0 0 12px;font-family:var(--ipg-font-display);font-size:22px;text-transform:uppercase;letter-spacing:.5px;background:linear-gradient(90deg,var(--ipg-accent-3),var(--ipg-gold),var(--ipg-accent));-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 0 20px rgba(5,217,232,.4);animation:ipg-win-pulse 1.1s ease-in-out infinite}@keyframes ipg-win-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}.ipg-win-stats{margin:0 0 22px;font-family:var(--ipg-font-body);color:var(--ipg-text-dim);font-size:20px}.ipg-win-actions{display:flex;gap:10px;justify-content:center}.ipg-win-actions .ipg-btn{flex:1}@media (prefers-reduced-motion: reduce){.ipg-cabinet-shadow,.ipg-card,.ipg-brand h1,.ipg-tile,.ipg-popover-backdrop,.ipg-popover,.ipg-win-overlay,.ipg-win-card,.ipg-win-card h2{animation:none!important;transition:none!important}}@media (max-width: 640px){.ipg-page{padding:18px 12px}.ipg-card{--notch: 12px;padding:16px}.ipg-toolbar{gap:8px}.ipg-btn,.ipg-field select{padding:10px 12px;font-size:10px}.ipg-field select{font-size:15px}.ipg-layout{gap:16px}}
