/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:"Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--container-5xl:64rem;--container-6xl:72rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-bg:#050a10;--color-line:#e8f4f724;--color-foreground:#f4f8f8;--color-muted:#9aa9ad;--color-accent:#f2b84b;--color-mint:#8bd9be;--color-green:#7fd891;--color-ice:#9ecbff;--color-blue:#62b8ff;--color-steel:#a8b8c9;--shadow-soft:0 18px 54px #0000004d;--shadow-panel:0 24px 90px #0000006b}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.static{position:static}.sticky{position:sticky}.start{inset-inline-start:var(--spacing)}.z-10{z-index:10}.mx-auto{margin-inline:auto}.mb-16{margin-bottom:calc(var(--spacing) * 16)}.mb-32{margin-bottom:calc(var(--spacing) * 32)}.grid{display:grid}.h-4{height:calc(var(--spacing) * 4)}.min-h-screen{min-height:100vh}.w-4{width:calc(var(--spacing) * 4)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-6xl{max-width:var(--container-6xl)}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.gap-3{gap:calc(var(--spacing) * 3)}.gap-6{gap:calc(var(--spacing) * 6)}.overflow-hidden{overflow:hidden}.bg-bg{background-color:var(--color-bg)}.p-6{padding:calc(var(--spacing) * 6)}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-20{padding-block:calc(var(--spacing) * 20)}.text-foreground{color:var(--color-foreground)}.underline{text-decoration-line:underline}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}@media(min-width:40rem){.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}}}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:86px}body{min-height:100dvh;color:var(--color-foreground);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(#050a10,#08131c 42%,#071018);margin:0;font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}img,svg{display:block}img{max-width:100%}:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px;border-radius:4px}.site-shell{position:relative}.site-shell:before{content:"";pointer-events:none;opacity:.5;background-color:#0000;background-image:linear-gradient(90deg,#ffffff06 1px,#0000 1px),linear-gradient(#ffffff05 1px,#0000 1px);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:72px 72px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;position:fixed;top:0;right:0;bottom:0;left:0;-webkit-mask-image:linear-gradient(#00000085,#0000 68%);mask-image:linear-gradient(#00000085,#0000 68%)}.hero-nav{z-index:80;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(#050a1057,#050a100a),linear-gradient(90deg,#050a104d,#050a1014);border-bottom:1px solid #0000;justify-content:space-between;align-items:center;gap:18px;padding:18px 28px;transition:border-color .22s,background .22s,box-shadow .22s,padding .22s;display:flex;position:fixed;top:0;left:0;right:0}.hero-nav:after{z-index:-1;content:"";pointer-events:none;opacity:0;background:radial-gradient(at 14% 0,#f2b84b29,#0000 36%),linear-gradient(#050a10e0,#050a10a8);transition:opacity .22s;position:absolute;top:0;right:0;bottom:0;left:0}.hero-nav-scrolled{background:#050a10bd;border-color:#b0d2de2e;padding-top:12px;padding-bottom:12px;box-shadow:0 18px 44px #00000047,0 1px #ffffff0a}.hero-nav-scrolled:after{opacity:1}.brand-link{color:#fff;letter-spacing:0;text-shadow:0 2px 20px #00000052;align-items:baseline;font-size:18px;font-weight:700;display:inline-flex}.primary-nav{color:#f4f8f8c2;align-items:center;gap:18px;font-size:13px;font-weight:650;display:none}.primary-nav a{transition:color .18s}.primary-nav a:hover{color:#fff}.nav-actions{align-items:center;gap:10px;display:flex}.github-button,.locale-button{color:#fff;min-height:38px;font:inherit;letter-spacing:0;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#050a1080;border:1px solid #ffffff2e;border-radius:8px;font-size:13px;font-weight:700;transition:border-color .18s,background-color .18s,transform .18s}.github-button{align-items:center;padding:0 14px;display:none}.locale-button{cursor:pointer;min-width:44px}.github-button:hover,.locale-button:hover{background:#f2b84b24;border-color:#f2b84bb8;transform:translateY(-1px)}.hero-stage{isolation:isolate;align-items:center;min-height:92svh;padding:110px 24px 92px;display:grid;position:relative;overflow:hidden}.hero-copy{z-index:8;pointer-events:none;order:1;width:min(100%,620px);margin-left:auto;margin-right:auto;position:relative}.hero-mark{color:#ffd884eb;letter-spacing:0;margin:0 0 20px;font-size:15px;font-weight:800}.hero-copy h1{color:#fff;letter-spacing:0;text-wrap:balance;text-shadow:0 4px 34px #0000006b;max-width:720px;margin:0;font-size:46px;font-weight:780;line-height:1.08}.hero-subtitle{color:#f4f8f8e6;text-wrap:pretty;max-width:620px;margin:22px 0 0;font-size:19px;font-weight:650;line-height:1.55}.hero-description{color:#dce8ebc2;max-width:560px;margin:18px 0 0;font-size:16px;line-height:1.85}.hero-ctas{flex-direction:column;gap:12px;margin-top:34px;display:flex}.hero-primary,.hero-secondary{letter-spacing:0;pointer-events:auto;border-radius:8px;justify-content:center;align-items:center;gap:12px;min-height:50px;padding:0 18px;font-size:14px;font-weight:800;transition:transform .18s,border-color .18s,background-color .18s,color .18s;display:inline-flex}.hero-primary{color:#161008;background:#f4bf55;box-shadow:0 18px 40px #f2b84b33}.hero-primary svg,.hero-secondary svg,.project-link svg{fill:none;stroke:currentColor;stroke-width:1.9px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.hero-secondary{color:#fff;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#050a106b;border:1px solid #ffffff2e}.hero-primary:hover,.hero-secondary:hover{transform:translateY(-2px)}.hero-secondary:hover{color:#ffd884;border-color:#f2b84b9e}.hero-map-stage{background:radial-gradient(circle at 18% 18%,#f2b84b24,#0000 22rem),radial-gradient(circle at 76% 34%,#62b8ff29,#0000 24rem),linear-gradient(#050a10b3,#050a10f2),#050a10;grid-template-columns:minmax(360px,.58fr) minmax(0,1fr);align-items:center;gap:clamp(28px,5vw,78px);min-height:100svh;padding:118px 5.2vw 96px}.hero-map-stage:before,.hero-map-stage:after{z-index:-1;content:"";pointer-events:none;position:absolute;top:0;right:0;bottom:0;left:0}.hero-map-stage:before{background-image:linear-gradient(#ffffff08 1px,#0000 1px),linear-gradient(90deg,#ffffff06 1px,#0000 1px);background-size:62px 62px;-webkit-mask-image:linear-gradient(#000000c2,#0000 86%);mask-image:linear-gradient(#000000c2,#0000 86%)}.hero-map-stage:after{opacity:.54;background:linear-gradient(115deg,#ffd8840e,#0000 32%),repeating-linear-gradient(-12deg,#ffffff06 0,#ffffff06 1px,#0000 1px,#0000 13px)}.hero-map-stage .hero-copy{pointer-events:auto;order:0;margin:0}.hero-map-stage .hero-copy h1{font-size:clamp(46px,4.6vw,62px)}.hero-town-status{max-width:440px;box-shadow:var(--shadow-soft);background:linear-gradient(#ffffff0d,#ffffff05),#071018a8;border:1px solid #ffffff21;border-radius:8px;margin-top:26px;padding:16px}.hero-town-status span{color:var(--color-accent);font-size:12px;font-weight:850}.hero-town-status strong{color:#fff;margin-top:6px;font-size:18px;line-height:1.25;display:block}.hero-town-status p{color:#deeaecc2;margin:8px 0 0;font-size:13px;line-height:1.65}.hero-town-map{z-index:5;min-height:min(68svh,650px);box-shadow:var(--shadow-panel);scrollbar-color:#f2b84b6b #ffffff0a;background:radial-gradient(circle at 24% 20%,#9ecbff29,#0000 18rem),radial-gradient(circle at 68% 72%,#8bd9be1f,#0000 17rem),linear-gradient(#ffffff0d,#ffffff04),#080f16d1;border:1px solid #b0d2de33;border-radius:8px;order:1;position:relative;overflow:hidden}.hero-town-map::-webkit-scrollbar{height:8px}.hero-town-map::-webkit-scrollbar-track{background:#ffffff0a}.hero-town-map::-webkit-scrollbar-thumb{background:#f2b84b6b;border-radius:999px}.hero-map-paper{background:linear-gradient(90deg,#ffffff09 1px,#0000 1px) 0 0/48px 48px,linear-gradient(#ffffff08 1px,#0000 1px) 0 0/48px 48px,radial-gradient(circle at 52% 48%,#f2b84b1a,#0000 24rem),#08131bb8;border:1px solid #ffffff1a;border-radius:8px;position:absolute;top:8%;right:5%;bottom:7%;left:5%;transform:rotate(-3deg)skewY(-6deg);box-shadow:inset 0 0 70px #00000057}.hero-map-road,.hero-map-river,.hero-map-flag{pointer-events:none;position:absolute}.hero-map-road{opacity:.72;background:linear-gradient(90deg,#0000,#ffd88433,#0000),repeating-linear-gradient(90deg,#f2b84b52 0,#f2b84b52 16px,#0000 16px,#0000 28px);border-radius:999px;height:8px}.hero-map-road-one{top:48%;left:8%;right:9%;transform:rotate(-12deg)}.hero-map-road-two{top:66%;left:26%;right:30%;transform:rotate(18deg)}.hero-map-road-three{top:26%;left:45%;right:20%;transform:rotate(26deg)}.hero-map-river{background:linear-gradient(90deg,#62b8ff14,#62b8ff38,#62b8ff0a);border:1px solid #62b8ff3d;border-radius:999px;height:42px;bottom:12%;left:4%;right:58%;transform:rotate(-18deg)}.hero-map-flag{background:#ffd884bd;width:2px;height:46px;top:14%;right:13%}.hero-map-flag:after{content:"";background:#f2b84b2e;border:1px solid #ffd88470;border-radius:2px 8px 8px 2px;width:34px;height:18px;animation:2.8s ease-in-out infinite mapFlagWave;position:absolute;top:2px;left:2px}.hero-map-building{--building-color:var(--color-accent);--building-scale:1;z-index:4;width:178px;color:var(--color-foreground);transform:translate(-50%,-50%) scale(var(--building-scale)) rotate(-2deg);transform-origin:bottom;outline:none;gap:8px;transition:transform .18s,filter .18s;display:grid;position:absolute}.hero-map-building:hover,.hero-map-building:focus-visible,.hero-map-building-active{z-index:8;filter:drop-shadow(0 18px 34px #00000059);transform:translate(-50%,-56%) scale(calc(var(--building-scale) + .03)) rotate(-2deg)}.hero-map-area-summit{--building-scale:1.08;top:21%;left:45%}.hero-map-area-civic{top:56%;left:47%}.hero-map-area-library{top:44%;left:26%}.hero-map-area-market{--building-scale:1.04;top:75%;left:33%}.hero-map-area-workshop{--building-scale:1.04;top:62%;left:69%}.hero-map-area-notice{--building-scale:.96;top:31%;left:74%}.hero-map-building-ice{--building-color:var(--color-ice)}.hero-map-building-online{--building-color:var(--color-green)}.hero-map-building-gold{--building-color:var(--color-accent)}.hero-map-building-mint{--building-color:var(--color-mint)}.hero-map-building-steel{--building-color:var(--color-steel)}.hero-map-building-blue{--building-color:var(--color-blue)}.map-building-stack{width:82px;height:68px;margin-left:8px;position:relative}.map-building-shadow,.map-building-body,.map-building-roof,.map-building-light{content:"";position:absolute}.map-building-shadow{background:#00000042;border-radius:50%;height:22px;bottom:-4px;left:4px;right:-18px;transform:rotate(-9deg)}.map-building-body{border:2px solid var(--building-color);width:58px;height:38px;bottom:4px;left:12px}@supports (color:color-mix(in lab,red,red)){.map-building-body{border:2px solid color-mix(in srgb,var(--building-color) 54%,#ffffff2e)}}.map-building-body{background:linear-gradient(135deg,var(--building-color),transparent 58%),#0b161ff0;border-radius:7px 7px 10px 10px}@supports (color:color-mix(in lab,red,red)){.map-building-body{background:linear-gradient(135deg,color-mix(in srgb,var(--building-color) 18%,transparent),transparent 58%),#0b161ff0}}.map-building-body{box-shadow:inset 8px 0 #ffffff09,0 0 22px var(--building-color)}@supports (color:color-mix(in lab,red,red)){.map-building-body{box-shadow:inset 8px 0 #ffffff09,0 0 22px color-mix(in srgb,var(--building-color) 16%,transparent)}}.map-building-roof{border:2px solid var(--building-color);width:76px;height:32px;top:8px;left:4px}@supports (color:color-mix(in lab,red,red)){.map-building-roof{border:2px solid color-mix(in srgb,var(--building-color) 64%,#ffffff38)}}.map-building-roof{background:repeating-linear-gradient(90deg,var(--building-color) 0 8px,#ffffff05 8px 14px),#0a141ee0;border-radius:10px 10px 4px 4px}@supports (color:color-mix(in lab,red,red)){.map-building-roof{background:repeating-linear-gradient(90deg,color-mix(in srgb,var(--building-color) 32%,#ffffff05) 0,color-mix(in srgb,var(--building-color) 32%,#ffffff05) 8px,#ffffff05 8px,#ffffff05 14px),#0a141ee0}}.map-building-roof{clip-path:polygon(12% 100%,50% 0,88% 100%)}.map-building-light{background:var(--building-color);width:8px;height:8px;box-shadow:0 0 18px var(--building-color);border-radius:999px;bottom:16px;right:7px}@supports (color:color-mix(in lab,red,red)){.map-building-light{box-shadow:0 0 18px color-mix(in srgb,var(--building-color) 72%,transparent)}}.hero-map-status-active .map-building-light,.hero-map-status-online .map-building-light,.hero-map-building-active .map-building-light{animation:2.6s ease-in-out infinite mapLampPulse}.hero-map-status-construction .map-building-body{background:repeating-linear-gradient(-45deg,#ffd8841f 0,#ffd8841f 8px,#0000 8px,#0000 17px),#0b161ff0;border-style:dashed}.hero-map-status-construction .map-building-light{animation:1.6s steps(2,jump-none) infinite mapConstructionBlink}.hero-map-animation-forge-spark:after{content:"";background:var(--building-color);border-radius:999px;width:6px;height:6px;animation:2.2s ease-in-out infinite mapForgeSpark;position:absolute;top:38px;left:80px;box-shadow:12px -10px #ffd88499,26px 7px #8bd9be6b}.hero-map-animation-notice-pulse .map-building-roof,.hero-map-animation-library-light .map-building-roof{animation:3.2s ease-in-out infinite mapSketchPulse}.map-building-label{border:1px solid var(--building-color);width:max-content;max-width:190px}@supports (color:color-mix(in lab,red,red)){.map-building-label{border:1px solid color-mix(in srgb,var(--building-color) 42%,#ffffff24)}}.map-building-label{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#050c12c2;border-radius:8px;padding:8px 10px;box-shadow:0 14px 34px #00000038}.map-building-label strong,.map-building-label small,.map-building-tooltip{display:block}.map-building-label strong{color:#fff;font-size:13px;font-weight:840;line-height:1.22}.map-building-label small{color:var(--building-color);margin-top:2px}@supports (color:color-mix(in lab,red,red)){.map-building-label small{color:color-mix(in srgb,var(--building-color) 78%,#ffffffb8)}}.map-building-label small{font-size:11px;font-weight:760}.map-building-tooltip{border-left:2px solid var(--building-color);color:#e5f0f2cc;opacity:0;width:min(240px,72vw);max-height:0;padding-left:10px;font-size:12px;line-height:1.6;transition:max-height .18s,opacity .18s;overflow:hidden}.hero-map-building:hover .map-building-tooltip,.hero-map-building:focus-visible .map-building-tooltip{opacity:1;max-height:90px}.scroll-cue{z-index:10;color:#e8f4f7bd;align-items:center;gap:12px;font-size:13px;font-weight:700;display:none;position:absolute;bottom:24px;left:24px}.scroll-cue span{background:linear-gradient(#ffd884,#0000);width:1px;height:42px;animation:2.3s ease-in-out infinite scrollLine}.section-block{padding:76px 0}.section-block-first{padding-top:48px}.section-title{max-width:780px;margin-bottom:34px}.section-title p{color:var(--color-accent);letter-spacing:0;text-transform:uppercase;margin:0 0 10px;font-size:12px;font-weight:850}.section-title h2{color:var(--color-foreground);letter-spacing:0;text-wrap:balance;margin:0;font-size:30px;font-weight:780;line-height:1.18}.section-title span{max-width:720px;color:var(--color-muted);margin-top:14px;font-size:15px;line-height:1.85;display:block}.project-grid{gap:14px;display:grid}.project-card,.game-card,.idea-panel{border:1px solid var(--color-line);box-shadow:var(--shadow-soft);background:linear-gradient(#ffffff0e,#ffffff05),#0b141dc7;border-radius:8px}.project-card,.game-card{--pin-color:var(--color-accent);padding:22px;transition:border-color .18s,transform .18s,background-color .18s;position:relative;overflow:hidden}.project-card:before,.game-card:before,.idea-panel:before{content:"";background:linear-gradient(90deg,transparent,var(--pin-color),transparent);opacity:.9;height:2px;position:absolute;top:0;left:0;right:0}.project-card:hover,.game-card:hover{border-color:var(--pin-color)}@supports (color:color-mix(in lab,red,red)){.project-card:hover,.game-card:hover{border-color:color-mix(in srgb,var(--pin-color) 58%,#ffffff1f)}}.project-card:hover,.game-card:hover{transform:translateY(-4px)}.project-card-top{justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.project-subtitle{color:var(--pin-color);margin:0}@supports (color:color-mix(in lab,red,red)){.project-subtitle{color:color-mix(in srgb,var(--pin-color) 82%,#fff)}}.project-subtitle{font-size:12px;font-weight:820}.project-card h3,.game-card h3{color:#fff;letter-spacing:0;margin:5px 0 0;font-size:23px;font-weight:800;line-height:1.15}.project-status{border:1px solid var(--pin-color);flex:none}@supports (color:color-mix(in lab,red,red)){.project-status{border:1px solid color-mix(in srgb,var(--pin-color) 42%,#ffffff1f)}}.project-status{color:#fff;background:var(--pin-color);border-radius:8px;padding:6px 9px}@supports (color:color-mix(in lab,red,red)){.project-status{background:color-mix(in srgb,var(--pin-color) 12%,transparent)}}.project-status{font-size:12px;font-weight:780;line-height:1.2}.project-description{color:#dde9ecbf;margin:18px 0 0;font-size:14px;line-height:1.8}.project-points{gap:9px;margin:20px 0 0;padding:0;list-style:none;display:grid}.project-points li{color:#edf5f6c7;align-items:flex-start;gap:9px;font-size:13px;line-height:1.55;display:flex}.project-points span{background:var(--pin-color);border-radius:50%;flex:none;width:6px;height:6px;margin-top:7px}.project-link{color:var(--pin-color);align-items:center;gap:8px;margin-top:22px;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.project-link{color:color-mix(in srgb,var(--pin-color) 86%,#fff)}}.project-link{font-size:13px;font-weight:820}.project-link-row{flex-wrap:wrap;gap:14px;margin-top:22px;display:flex}.project-link-row .project-link{margin-top:0}.project-card-gold,.project-card-gold .project-link{--pin-color:#f2b84b}.project-card-online,.project-card-online .project-link{--pin-color:#45d483}.project-card-mint,.project-card-mint .project-link{--pin-color:#8bd9be}.project-card-green,.project-card-green .project-link{--pin-color:#7fd891}.project-card-blue,.project-card-blue .project-link{--pin-color:#62b8ff}.project-card-ice,.project-card-ice .project-link{--pin-color:#9ecbff}.project-card-steel,.project-card-steel .project-link{--pin-color:#a8b8c9}.game-strip{gap:16px;display:grid}.game-card{isolation:isolate;gap:24px;min-height:214px;display:grid}.game-card-side{border-top:1px solid var(--color-line);padding-top:20px}.game-card-copy,.game-card-side{z-index:1;position:relative}.game-card-logo{z-index:0;object-fit:contain;object-position:right bottom;opacity:.1;pointer-events:none;filter:saturate(1.05);width:min(280px,45%);max-height:82%;position:absolute;bottom:12px;right:24px;transform:rotate(-2deg)}.project-card-ice .game-card-logo{opacity:.16;mix-blend-mode:screen;width:min(360px,52%);right:18px;transform:rotate(-1deg)}.project-card-steel .game-card-logo{opacity:.12}.content-entrance-section{padding-top:62px}.content-entrance-grid{gap:14px;display:grid}.content-entrance-card{border:1px solid var(--color-line);min-height:190px;box-shadow:var(--shadow-soft);background:linear-gradient(#ffffff0e,#ffffff05),#0b141dc7;border-radius:8px;padding:22px;transition:border-color .18s,background-color .18s,transform .18s;position:relative;overflow:hidden}.content-entrance-card:before{content:"";background:linear-gradient(90deg,transparent,var(--color-accent),transparent);opacity:.9;height:2px;position:absolute;top:0;left:0;right:0}.content-entrance-card:hover{background:#0e1924db;border-color:#f2b84b7a;transform:translateY(-3px)}.content-entrance-kicker{color:var(--color-accent);letter-spacing:0;text-transform:uppercase;font-size:12px;font-weight:850}.content-entrance-card strong{color:#fff;margin-top:16px;font-size:22px;font-weight:800;line-height:1.25;display:block}.content-entrance-card small{color:#dce8ebad;margin-top:22px;font-size:13px;line-height:1.65;display:block}.town-growth-section{padding-top:34px}.town-growth-list{gap:10px;display:grid}.town-growth-item{border-bottom:1px solid var(--color-line);grid-template-columns:120px minmax(0,1fr);gap:18px;padding:0 0 16px;transition:border-color .18s,transform .18s;display:grid}.town-growth-item:hover,.town-growth-item:focus-visible{border-color:#f2b84b70;outline:none;transform:translate(4px)}.town-growth-date{color:var(--color-accent)}.town-growth-body{gap:5px;display:grid}.town-growth-body strong{color:#fff;font-size:16px;line-height:1.35}.town-growth-body span{color:#e0eceebd;font-size:13px;line-height:1.65}.town-growth-empty{color:var(--color-muted);margin:0}.quiet-section{border-top:1px solid var(--color-line);border-bottom:1px solid var(--color-line)}.quiet-grid{gap:28px;display:grid}.quiet-list{gap:12px;display:grid}.quiet-row{border-left:2px solid #f2b84b85;padding:4px 0 4px 16px}.quiet-row h3{color:#fff;margin:0;font-size:16px;font-weight:780}.quiet-row p{color:var(--color-muted);margin:7px 0 0;font-size:14px;line-height:1.75}.idea-panel{--pin-color:#8bd9be;align-self:start;padding:24px;position:relative;overflow:hidden}.idea-panel h2{color:#fff;letter-spacing:0;margin:0;font-size:24px;font-weight:800}.idea-panel p{color:var(--color-muted);margin:13px 0 0;font-size:14px;line-height:1.78}.idea-list{flex-wrap:wrap;gap:8px;margin-top:22px;display:flex}.idea-list span{color:#eef7f8d1;background:#ffffff0b;border:1px solid #ffffff1f;border-radius:8px;padding:8px 10px;font-size:12px;font-weight:700}.now-section{padding-bottom:60px}.now-list{gap:12px;display:grid}.now-list p{border-bottom:1px solid var(--color-line);color:#ecf5f7d4;grid-template-columns:44px 1fr;gap:16px;margin:0;padding:0 0 16px;font-size:14px;line-height:1.8;display:grid}.now-list span{color:var(--color-accent);font-size:13px;font-weight:820}.contact-section{padding-top:40px}.contact-copy{max-width:650px;color:var(--color-muted);margin:-12px 0 24px;font-size:15px;line-height:1.85}.contact-actions{flex-direction:column;gap:12px;display:flex}.contact-button{border:1px solid var(--color-line);color:#fff;background:#ffffff09;border-radius:8px;justify-content:center;align-items:center;gap:10px;min-height:46px;padding:0 16px;font-size:14px;font-weight:800;transition:border-color .18s,background-color .18s,transform .18s;display:inline-flex}.contact-button:hover{background:#f2b84b14;border-color:#f2b84ba3;transform:translateY(-1px)}.site-footer{z-index:10;max-width:1152px;margin:0 auto;padding:0 24px 42px;position:relative}.site-footer p{border-top:1px solid var(--color-line);color:#dae6e994;text-align:center;margin:0;padding-top:24px;font-size:13px}.content-page{position:relative}.content-page:before{content:"";pointer-events:none;opacity:.48;background-color:#0000;background-image:linear-gradient(90deg,#ffffff05 1px,#0000 1px),linear-gradient(#ffffff05 1px,#0000 1px);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:72px 72px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;position:fixed;top:0;right:0;bottom:0;left:0;-webkit-mask-image:linear-gradient(#0000006b,#0000 72%);mask-image:linear-gradient(#0000006b,#0000 72%)}.content-nav{z-index:30;border-bottom:1px solid var(--color-line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#050a10d1;justify-content:space-between;align-items:center;gap:18px;padding:18px 24px;display:flex;position:sticky;top:0}.content-primary-nav{color:#f4f8f8b8;align-items:center;gap:22px;font-size:13px;font-weight:700;display:none}.content-primary-nav a{transition:color .18s}.content-primary-nav a:hover{color:#fff}.content-github-button{display:none}.content-main{z-index:2;width:min(100% - 32px,980px);margin:0 auto;padding:74px 0 96px;position:relative}.content-hero{max-width:760px;margin-bottom:32px}.content-hero p{color:var(--color-accent);letter-spacing:0;text-transform:uppercase;margin:0 0 12px;font-size:12px;font-weight:850}.content-hero h1,.content-detail-head h1{color:#fff;letter-spacing:0;text-wrap:balance;margin:0;font-size:clamp(34px,7vw,68px);font-weight:790;line-height:1.08}.content-hero span,.content-detail-head p{color:#dce8ebc2;max-width:720px;margin-top:18px;font-size:16px;line-height:1.85;display:block}.content-list{gap:14px;display:grid}.content-card,.content-detail{border:1px solid var(--color-line);box-shadow:var(--shadow-soft);background:linear-gradient(#ffffff0e,#ffffff05),#0b141dc7;border-radius:8px}.content-card{padding:22px}.content-card-meta{color:#dae6e9ad;flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;font-weight:750;display:flex}.content-card-meta span{color:#ffd884;border:1px solid #f2b84b59;border-radius:999px;padding:2px 8px}.content-card h2{color:#fff;margin:14px 0 0;font-size:24px;font-weight:780;line-height:1.25}.content-card h2 a{transition:color .18s}.content-card h2 a:hover{color:#ffd884}.content-card p{color:#dce8ebbd;margin:12px 0 0;font-size:15px;line-height:1.8}.content-tags{flex-wrap:wrap;gap:8px;margin-top:18px;display:flex}.content-tags span{color:#e8f4f7ad;background:#050a105c;border:1px solid #ffffff1f;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:750}.content-empty{border:1px solid var(--color-line);color:var(--color-muted);background:#0b141d99;border-radius:8px;margin:0;padding:22px}.content-detail{padding:clamp(22px,5vw,42px)}.content-detail-head{border-bottom:1px solid var(--color-line);padding-bottom:30px}.content-back-link,.content-external-link{border-radius:8px;justify-content:center;align-items:center;min-height:40px;font-size:13px;font-weight:800;display:inline-flex}.content-back-link{color:#ffd884;margin-bottom:22px}.content-external-link{color:#161008;background:#f4bf55;margin-top:22px;padding:0 16px;box-shadow:0 18px 40px #f2b84b29}.content-prose{color:#e8f4f7d1;padding-top:30px;font-size:16px;line-height:1.9}.content-prose h2,.content-prose h3,.content-prose h4{color:#fff;line-height:1.24}.content-prose h2{margin:32px 0 12px;font-size:28px}.content-prose h3{margin:28px 0 10px;font-size:22px}.content-prose h4{margin:24px 0 8px;font-size:18px}.content-prose p,.content-prose ul{margin:14px 0 0}.content-prose ul{padding-left:1.1rem}.content-prose li+li{margin-top:7px}.content-prose a{color:#ffd884;text-underline-offset:4px;font-weight:800;-webkit-text-decoration:underline #ffd88459;text-decoration:underline #ffd88459}.content-prose code{color:#ffd884;background:#050a1080;border:1px solid #ffffff1f;border-radius:5px;padding:2px 5px;font-size:.92em}.content-not-found{border:1px solid var(--color-line);background:#0b141db8;border-radius:8px;padding:clamp(24px,5vw,42px)}@keyframes scrollLine{0%,to{transform-origin:top;transform:scaleY(.42)}50%{transform:scaleY(1)}}@keyframes mapFlagWave{0%,to{transform:skewY(-5deg)}50%{transform:skewY(9deg)translateY(1px)}}@keyframes mapLampPulse{0%,to{opacity:.62;transform:scale(.9)}50%{opacity:1;transform:scale(1.22)}}@keyframes mapConstructionBlink{0%,to{opacity:.38}50%{opacity:1}}@keyframes mapForgeSpark{0%,to{opacity:.32;transform:translateY(3px)}50%{opacity:1;transform:translateY(-2px)}}@keyframes mapSketchPulse{0%,to{filter:brightness()}50%{filter:brightness(1.32)}}@media(min-width:640px){.hero-nav{padding:26px 44px}.hero-nav-scrolled{padding-top:14px;padding-bottom:14px}.github-button{display:inline-flex}.hero-stage{padding-left:44px;padding-right:44px}.hero-copy{margin-left:0}.hero-copy h1{font-size:58px}.hero-subtitle{font-size:21px}.hero-ctas{flex-direction:row}.hero-primary,.hero-secondary{padding-left:22px;padding-right:22px}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.section-title h2{font-size:38px}.contact-actions{flex-direction:row}.contact-button{justify-content:flex-start}}@media(min-width:900px){.primary-nav,.content-primary-nav{display:flex}.content-github-button{display:inline-flex}.hero-stage{padding-left:5.2vw;padding-right:5.2vw}.hero-copy h1{font-size:70px}.hero-ctas{display:none}.scroll-cue{display:flex;left:auto;right:5.2vw}.section-block{padding-top:96px;padding-bottom:96px}.section-block-first{padding-top:62px}.project-grid-apps{grid-template-columns:repeat(4,minmax(0,1fr))}.content-entrance-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.project-card{min-height:390px}.game-card{grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);align-items:start;padding:28px}.game-card-side{border-top:0;border-left:1px solid var(--color-line);padding-top:0;padding-left:26px}.quiet-grid{grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:54px}}@media(max-width:899px){.hero-map-stage{min-height:auto;padding:108px 18px 76px;display:block}.hero-map-stage .hero-copy{width:min(100%,620px);margin:0 auto}.hero-town-status{margin-top:22px}.hero-town-map{scroll-snap-type:x proximity;gap:14px;min-height:0;margin-top:30px;padding:20px 18px 28px;display:flex;overflow:auto hidden}.hero-map-paper{top:10px;right:10px;bottom:10px;left:10px;transform:none}.hero-map-road,.hero-map-river,.hero-map-flag{display:none}.hero-map-building{scroll-snap-align:start;width:246px;min-width:min(246px,76vw);position:relative;top:auto;left:auto;transform:none}.hero-map-building:hover,.hero-map-building:focus-visible,.hero-map-building-active{transform:translateY(-3px)}.map-building-label{width:100%;max-width:none}.map-building-tooltip{opacity:1;max-height:none;margin-top:2px}.town-growth-item{grid-template-columns:1fr;gap:8px}.hero-stage{align-content:center;min-height:92svh}}@media(max-width:420px){.hero-nav,.content-nav{padding-left:18px;padding-right:18px}.content-main{width:min(100% - 24px,980px);padding-top:52px}.brand-link{font-size:16px}.hero-stage{padding-left:18px;padding-right:18px}.hero-copy h1{font-size:36px}.hero-subtitle{font-size:16px}.hero-description{font-size:15px;line-height:1.75}.hero-ctas{margin-top:24px}.project-card,.game-card,.idea-panel{padding:18px}.project-card-top{display:grid}}@media(prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
