*{box-sizing:border-box}body{margin:0;background:#18283f;color:#eee9da;font-family:ui-rounded,'Trebuchet MS',system-ui,sans-serif}body:before{content:'';position:fixed;inset:0;z-index:-1;background:linear-gradient(100deg,#0c1b32ec,#233656df 55%,#13243eef);pointer-events:none}button,select{font:inherit}button{cursor:pointer}button:disabled{cursor:default}button:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #ffe185;outline-offset:3px}#ink-village [hidden]{display:none!important}#ink-village{max-width:1100px;margin:auto;padding:30px 30px 50px}.review-head{display:flex;align-items:center;justify-content:space-between;margin:0 0 24px;gap:20px}.fable-title{position:relative;padding:12px 24px 8px 12px}.fable-title:before{content:'';position:absolute;inset:24px -24px 0 0;z-index:-1;background:#101b37;clip-path:polygon(0 12%,92% 0,87% 15%,100% 20%,94% 73%,82% 82%,86% 94%,1% 100%,4% 67%)}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:800;color:#b5b8dc;margin:0 0 10px}h1,h2,.chapter-ribbon,.iv-menuhead,.iv-wave,.iv-coins,.iv-over b{font-family:Impact,'Arial Black',ui-rounded,sans-serif}h1{font-size:52px;font-weight:900;line-height:.95;letter-spacing:1px;margin:0;color:#fff3d7;text-shadow:3px 4px #0a1730}h1 span{display:inline-block;transform:rotate(-2deg)}h1 span:last-of-type{transform:rotate(1deg)}h1 em{font-style:normal;color:#d86599;font-size:.85em}h1 small{display:block;font-size:.68em;letter-spacing:11px;margin:8px 0 0 2px;color:#bcc2ed;transform:rotate(-1deg)}.review-sub{color:#c1c8df;font-size:14px;font-style:italic;line-height:1.6;text-align:right}.review-layout{display:grid;grid-template-columns:minmax(0,520px) minmax(0,1fr);gap:36px;align-items:start}.play-column{min-width:0}.chapter-ribbon{margin:0 auto 10px;display:flex;justify-content:center;gap:20px;align-items:center;letter-spacing:2px;font-size:13px;color:#bcc1e8}.chapter-ribbon span{color:#c98a9b;font-size:16px}#ink-village .iv-game{--panel:#23344e;--ink:#fff0d1;--edge:#8189ad;width:100%;max-width:520px;margin:0 auto;border:3px solid #0b1830;border-radius:18px 12px 22px 14px;overflow:hidden;background:#15243b;box-shadow:0 0 0 1px #666b9555,0 12px 0 #08162966,0 25px 50px #07132288;color:#fff0d6;font-size:12px;line-height:1.3}.iv-hud{height:62px;display:flex;align-items:center;gap:9px;padding:0 14px;position:relative;background:linear-gradient(105deg,#162443,#26304f 60%,#162440);border-bottom:2px solid #6e7296;z-index:1}.iv-hud:after{content:'';position:absolute;bottom:-4px;left:8%;width:84%;height:3px;background:#bbb3d53d;clip-path:polygon(0 0,100% 0,88% 100%,2% 70%)}.iv-coins{display:flex;align-items:center;gap:8px;color:#ffe293;min-width:71px;font-size:24px;letter-spacing:1px;text-shadow:1px 2px #594733}.coin-emblem{display:grid;place-items:center;width:24px;height:26px;background:#e3a347;color:#fff1ac;border:2px solid #ffe398;clip-path:polygon(20% 0,80% 0,100% 27%,95% 76%,72% 100%,22% 95%,0 69%,3% 23%);font:900 14px system-ui;text-shadow:1px 1px #a86338}.iv-wave{flex:1;display:flex;flex-direction:column;gap:3px;text-align:center}.iv-wave b{font-weight:400;font-size:20px;letter-spacing:1.2px;color:#e4dcff}.iv-wave span{font:800 8px/1 'Trebuchet MS',sans-serif;letter-spacing:1.4px;color:#8fbcb6}.iv-game button{min-height:44px;touch-action:manipulation;font-weight:800}.iv-hud button{border:0;background:#111e36;color:#cbc3ec;min-width:38px;min-height:40px;padding:9px;clip-path:polygon(10% 0,92% 4%,100% 86%,82% 100%,0 93%,3% 13%)}.iv-hud button:hover{background:#3d4262;color:#ffe7a8}.iv-hud svg{display:block;width:22px;height:22px}.sound-slash,.is-muted .sound-waves,.play-triangle,.is-paused .pause-bars{display:none}.is-muted .sound-slash,.is-paused .play-triangle{display:block}.iv-field{position:relative;background:#273753}#iv-canvas{display:block;width:100%}.iv-grid{position:absolute;display:grid;grid-template-columns:repeat(11,1fr);grid-template-rows:repeat(13,1fr)}#ink-village .iv-grid button{min-width:0;min-height:0;border:0;background:transparent;padding:0;border-radius:0}.iv-grid button:focus-visible{outline:2px solid #ffe28e;outline-offset:-3px}.iv-grid button:hover{background:#eee3fc12!important}.iv-entry{position:absolute;transform:translateX(-50%);width:28px;height:25px;display:flex;align-items:center;justify-content:center;z-index:1;pointer-events:none;background:linear-gradient(110deg,#a3ce9e,#78b79e);color:#172e3c;font:900 11px/1 'Trebuchet MS',sans-serif;clip-path:polygon(0 0,100% 5%,93% 100%,51% 80%,4% 100%);padding-bottom:4px;filter:drop-shadow(1px 2px 0 #102440);border-top:3px solid #d2d8b0}.iv-entry[data-side=left]{clip-path:polygon(0 0,82% 4%,100% 50%,81% 96%,0 100%);padding:0 4px 0 0;border-top:0;border-left:3px solid #d2d8b0}.iv-entry[data-side=right]{clip-path:polygon(18% 4%,100% 0,100% 100%,18% 96%,0 50%);padding:0 0 0 4px;border-top:0;border-right:3px solid #d2d8b0}.iv-entry.iv-counting{background:linear-gradient(100deg,#f6db81,#e5aa58);font-variant-numeric:tabular-nums;letter-spacing:-.5px;border-color:#ffedb4}
/* A cut slate plaque and three miniature heraldic seals, anchored to the tower. */
.iv-menu{position:absolute;z-index:3;width:228px;padding:10px 11px 11px;color:#faf0d8;background:#18273e;border:2px solid #d2c7a2;border-radius:8px 3px 9px 4px;box-shadow:0 0 0 3px #152139,3px 7px 0 #09193288,0 12px 20px #07142a66}.iv-menu:before{content:'';position:absolute;inset:4px;pointer-events:none;border:1px solid #8d89a34a;clip-path:polygon(0 0,24% 0,24% 9%,88% 9%,88% 0,100% 0,100% 100%,70% 100%,70% 92%,12% 92%,12% 100%,0 100%)}.iv-menu:after{content:'';position:absolute;left:var(--tip,50%);bottom:-9px;width:13px;height:13px;transform:rotate(45deg);background:#18273e;border-right:2px solid #d2c7a2;border-bottom:2px solid #d2c7a2}.iv-menu.iv-below:after{top:-9px;bottom:auto;transform:rotate(225deg)}.iv-menuhead{display:flex;align-items:center;justify-content:space-between;gap:5px;font-size:19px;letter-spacing:1px}.iv-menuhead b{font-weight:400}.iv-menuhead button{border:0;background:none;color:#b4b9d2;font-size:25px;line-height:1;min-width:30px;min-height:30px;padding:0}.iv-chips{display:flex;gap:5px;flex-wrap:wrap;margin:0 0 5px}.iv-chips span{font-size:9px;font-weight:800;color:#b5cabb;letter-spacing:.8px;text-transform:uppercase}.iv-chips span+span:before{content:'·';padding-right:5px;color:#d6b574}.iv-chips .iv-danger{color:#ff91a1}.iv-build-preview{display:flex;align-items:center;gap:12px;margin-bottom:6px}.iv-build-preview canvas{width:68px;height:68px;filter:drop-shadow(0 4px 0 #0d1938)}.iv-build-preview b{font:800 13px Georgia,serif}.iv-build-preview span{display:block;color:#acbaca;font-size:10px;margin-top:6px}.iv-branches{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:6px 0 3px}.iv-branches button{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;min-width:0;padding:6px 0 8px;background:linear-gradient(140deg,#5c725f,#233c46);border:0;clip-path:polygon(10% 0,92% 3%,100% 24%,96% 83%,50% 100%,4% 85%,0 15%);color:#f8efd5}.iv-branches button:before{content:'';position:absolute;inset:3px;background:#15263d77;clip-path:inherit;z-index:-1}.iv-branches button:nth-child(2){background:linear-gradient(130deg,#4b9396,#233b53)}.iv-branches button:nth-child(3){background:linear-gradient(130deg,#a79060,#443e54)}.iv-branches button:not(:disabled):hover{filter:brightness(1.3)}.iv-branches canvas{width:55px;height:55px}.iv-branches strong{font-size:9px;letter-spacing:.6px}.iv-branches span{font-size:9px;color:#c9d7df}.iv-branches .price{color:#ffe191;font-size:12px;margin:2px 0 2px}.iv-game button:disabled{opacity:.42;filter:saturate(.3)}.iv-actions{display:flex;gap:6px;margin-top:8px}.iv-actions button{flex:1;border:0;background:#38465b;color:#d3c9ad;font-size:10px;letter-spacing:1px;padding:7px 12px;min-height:34px;clip-path:polygon(4% 0,96% 3%,100% 75%,97% 100%,0 94%,1% 12%)}.iv-actions .iv-primary,.iv-over .iv-primary{display:flex;align-items:center;justify-content:space-between;background:linear-gradient(110deg,#a8d4aa,#79bda6);color:#183637;border:0;box-shadow:inset 0 3px #cee7b9;font-size:13px;letter-spacing:1px}.iv-actions #iv-sell{background:transparent;color:#b9a9a4;font-size:9px;min-height:27px;flex:0 1 auto;padding:4px 0;margin:auto;clip-path:none}#iv-info{font-size:11px;color:#b5c6cf;line-height:1.5;margin:7px 0}#iv-pause-note{display:block;font-size:10px;color:#e7bd7e;text-align:center;margin:6px 0 0}.iv-message{min-height:33px;padding:9px 12px;background:#14213bf0;color:#b1bbd3;text-align:center;font-size:10px;border-top:1px solid #77749a66}.iv-over{position:absolute;inset:0;z-index:5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;background:radial-gradient(ellipse,#25334eef,#111a31f5);text-align:center;padding:25px}.iv-over b{font-size:42px;line-height:1.05;font-weight:400;letter-spacing:1px;color:#f4ddb7;transform:rotate(-2deg);text-shadow:3px 5px #0b122a}.iv-over span{font:italic 14px/1.6 Georgia,serif;color:#bdb7cb}.fallen-seal{color:#cc688e;font-size:65px;line-height:1}.iv-over .iv-primary{padding:12px 25px;clip-path:polygon(3% 0,100% 5%,96% 100%,0 93%);margin-top:10px;font-weight:900}
/* The optional art inspection and playtest controls sit outside the game. */
.art-review{padding:16px 0}.art-review h2{font-size:25px;font-weight:400;letter-spacing:.8px;color:#eee2c8;margin:20px 0 12px}.art-review h2:after{content:'';display:block;width:80%;height:3px;margin-top:8px;background:#878ab1;clip-path:polygon(0 0,100% 80%,40% 100%,0 100%)}.roster,.tower-roster,.village-roster{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.tower-roster{grid-template-columns:repeat(4,minmax(0,1fr))}.art-review canvas{display:block;width:100%;height:auto}.art-review figure{margin:0}.art-review figcaption{font-weight:800;font-size:11px;letter-spacing:.4px;color:#c9c4e7;margin:7px 0 18px}.art-review figcaption span{display:block;font-size:9px;letter-spacing:0;font-weight:400;color:#97aec4;margin-top:4px}.review-note{color:#a8b7ce;font-size:12px;line-height:1.7;margin:15px 0;max-width:34em}#asset-status{font-size:10px;color:#7fafa5}.studio-tools{margin:18px 0}.studio-tools summary{cursor:pointer;color:#a4acc9;font-size:11px;letter-spacing:1px;text-align:center;list-style:none}.review-controls{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:14px}.review-controls button,.review-controls select{background:#23374d;color:#d3d5e4;border:1px solid #65718966;padding:7px 9px;min-height:35px;font-size:11px;border-radius:3px}.review-controls label{display:flex;align-items:center;gap:6px;font-size:10px;color:#a9b5cb}@media(max-width:780px){#ink-village{padding:16px 8px 30px}.review-head{max-width:520px;margin:0 auto 18px}.fable-title{padding-left:5px}h1{font-size:39px}.eyebrow{font-size:8px;letter-spacing:1.2px}.review-sub{display:none}.review-layout{grid-template-columns:1fr;gap:15px}.play-column,.art-review{width:100%;max-width:520px;margin:auto}.art-review{border-top:1px solid #6e769444;padding:20px 9px}.chapter-ribbon{font-size:11px;gap:14px}.iv-hud{padding:0 9px;gap:6px;height:58px}.iv-coins{font-size:20px;min-width:64px;gap:5px}.coin-emblem{width:21px;height:23px}.iv-wave b{font-size:18px}.iv-hud button{min-width:36px;padding:7px}}@media(pointer:coarse){.iv-hud button{min-height:44px;min-width:44px}.iv-actions button{min-height:44px}.iv-menuhead button{min-width:36px;min-height:36px}.review-controls button,.review-controls select{min-height:44px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
/* Revision: retain the illustrated cast; remove the painted surround. */
body{background:#23372e;color:#eee9da}body:before{display:none}.eyebrow{color:#b7c8a4}.review-sub{color:#becbb1}.fable-title:before{background:#1a2c26}h1{text-shadow:3px 4px #15251f}h1 em{color:#df7155}h1 small{color:#d5bf7e}.chapter-ribbon{color:#c8d5b2}.chapter-ribbon span{color:#d2ab66}#ink-village .iv-game{border:3px solid #1d2c29;border-radius:9px;box-shadow:0 6px 0 #172822,0 16px 30px #14251f55;background:#829a72}.iv-hud{background:#263d34;border-bottom:2px solid #5e765c}.iv-hud:after{display:none}.iv-wave b{color:#f3e8c3}.iv-wave span{color:#bdcbb0}.iv-hud button{background:#1b3029;color:#e0d9b9;border-radius:5px;clip-path:none}.iv-hud button:hover{background:#3e5847}.iv-field{background:#829a72}.iv-message{background:#263d34;color:#c6d3b9;border-color:#526e52}.iv-entry{background:#e6bd68;color:#233a30;border-color:#f7db95;filter:none}.iv-entry.iv-counting{background:#f2d787}.art-review h2{color:#eae6cd}.art-review h2:after{background:#768b6a}.art-review figcaption{color:#dedec1}.art-review figcaption span,.review-note{color:#b9c9b1}#asset-status{color:#9fba98}.review-link{font-size:12px;color:#e3c384}.studio-tools summary{color:#afc3a5}.review-controls button,.review-controls select{background:#2d4639;color:#e2e3c7;border-color:#5f775a}.review-controls label{color:#bdcbb0}
.iv-menu{padding:6px;color:#f5edd3;background:#243b32;border:2px solid #dec98c;border-radius:7px;box-shadow:0 3px 0 #1a2b2480;line-height:1.2}.iv-menu:before,.iv-menu:after{display:none}.iv-menuhead{height:30px;font-family:'Trebuchet MS',sans-serif;font-size:12px;letter-spacing:0;padding-left:5px}.iv-menuhead b{font-weight:800}.iv-menuhead button{color:#dbdfc7;min-height:30px;min-width:30px;width:30px;height:30px;font-size:23px}.iv-menu[data-kind=build]{pointer-events:none}.iv-menu[data-kind=build] #iv-close{pointer-events:auto}.iv-chips{margin:0 4px 4px;gap:6px}.iv-chips span{font-size:12px;color:#f2d486;letter-spacing:0;text-transform:none}.iv-chips span+span:before{display:none}.iv-branches{display:flex;flex-direction:column;gap:5px;margin:3px 0}.iv-branches button{min-height:53px;width:100%;display:grid;grid-template-columns:44px minmax(0,1fr);align-items:center;gap:4px;padding:3px;background:#3d5644!important;border:1px solid #708465;border-radius:5px;clip-path:none;text-align:left;color:#eee9ce}.iv-branches button:before{display:none}.iv-branches canvas{width:44px;height:44px;grid-row:1}.iv-branches button>span{display:block;font-size:11px;color:#f1e8ca;min-width:0}.iv-branches strong{display:block;font-size:11px;letter-spacing:0;line-height:1.2}.iv-branches small{font-size:9px;color:#bcd2b0;display:block;margin-top:2px}.iv-branches .price{display:block;font-size:11px;color:#f1ce77;margin-top:3px}.iv-actions{margin:2px 0 0;justify-content:flex-end}.iv-actions:has(button[hidden]){display:none}.iv-actions #iv-sell{margin:0;padding:5px 8px;min-height:32px;letter-spacing:0;font-size:12px;color:#d5cfac}.iv-branches button:not(:disabled):hover{background:#536d4d!important;filter:none}#iv-info{margin:5px;font-size:11px;color:#cfdfba}#iv-pause-note{font-size:10px;margin:3px 0;color:#f3cb85}.iv-over{background:#20352ef5}.iv-over .iv-primary{background:#d9c384;color:#23382f}.iv-over b{color:#f1dfb0;text-shadow:3px 5px #15271e}.fallen-seal{color:#df7155}
.family-study{margin-top:50px;padding-top:25px;border-top:1px solid #637c5566}.family-study h2{font-family:Impact,'Arial Black',sans-serif;font-size:30px;letter-spacing:.4px;font-weight:400;margin:8px 0 20px}.family-study img{display:block;width:100%;border-radius:8px;background:#faf6ec}.family-notes{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;font-size:13px;line-height:1.6;color:#becdb6}.family-notes b{display:block;color:#f0e4bd;font-size:15px;margin-bottom:5px}.family-study>.review-note{max-width:none}.iv-grid button{touch-action:manipulation}
@media(max-width:780px){.family-study{max-width:520px;margin:28px auto 0}.family-notes{grid-template-columns:1fr;gap:0}.family-study h2{font-size:26px}}
/* Upgrade choices are separate seals beside the tower, not a large enclosing panel. */
.iv-menu[data-kind=upgrade]{background:none;border:0;box-shadow:none;padding:0}.iv-menu[data-kind=upgrade] .iv-menuhead{height:24px;justify-content:flex-end;padding:0}.iv-menu[data-kind=upgrade] .iv-menuhead b{display:none}.iv-menu[data-kind=upgrade] .iv-menuhead button{background:#243b32;border-radius:50%;width:24px;height:24px;min-width:24px;min-height:24px;font-size:19px}.iv-menu[data-kind=upgrade] .iv-chips{display:none}.iv-menu[data-kind=upgrade] .iv-branches{gap:6px;margin:2px 0}.iv-menu[data-kind=upgrade] .iv-branches button{background:none!important;border:0;padding:0;min-height:48px;grid-template-columns:46px minmax(0,1fr);gap:0}.iv-menu[data-kind=upgrade] .iv-branches canvas{width:46px;height:46px;background:#243b32;border:2px solid #dec98c;border-radius:7px;padding:1px}.iv-menu[data-kind=upgrade] .iv-branches button:not(:disabled):hover canvas{background:#506747}.iv-menu[data-kind=upgrade] .iv-actions #iv-sell{background:#243b32ed;border-radius:4px;min-height:30px;padding:5px 8px}.iv-menu[data-kind=upgrade] #iv-pause-note{background:#243b32ed;padding:4px;border-radius:3px;display:inline-block}.iv-menu[data-kind=upgrade] #iv-info{background:#243b32ed;border-radius:4px;padding:8px;margin:3px 0}.iv-menu[data-kind=upgrade][data-side=left] .iv-branches button{grid-template-columns:minmax(0,1fr) 46px}.iv-menu[data-kind=upgrade][data-side=left] .iv-branches canvas{grid-column:2;grid-row:1}.iv-menu[data-kind=upgrade][data-side=right] .iv-actions{justify-content:flex-start}
/* Tower cards: portrait well, name/price heading, and a shared row of effect badges. */
.iv-menu[data-kind=build]{pointer-events:auto}.iv-menu[data-kind=build] .iv-menuhead{height:24px}.iv-menu[data-kind=upgrade] .iv-menuhead{display:none}.iv-menu[data-kind=upgrade]:has(#iv-branches[hidden]) .iv-menuhead{display:flex;height:22px;justify-content:flex-start}.iv-menu[data-kind=upgrade]:has(#iv-branches[hidden]) .iv-menuhead b{display:block;background:#243b32;padding:5px 8px;border-radius:4px}
.iv-menu[data-kind=upgrade] .iv-branches button{min-height:60px;grid-template-columns:44px minmax(0,1fr);gap:4px;padding:5px;background:#243b32!important;border:1px solid #dec98c;border-radius:7px;box-shadow:0 3px 0 #172c2477}.iv-menu[data-kind=upgrade] .iv-branches canvas{width:44px;height:44px;border:0;border-radius:4px;background:#45604b;padding:0}.iv-menu[data-kind=upgrade] .iv-branches button>.iv-card-copy{padding:0;background:none;border-radius:0;display:grid;gap:7px;min-width:0}.iv-menu .iv-card-title{display:flex;align-items:center;justify-content:space-between;gap:3px}.iv-menu .iv-card-title strong{font-size:12px;line-height:1;color:#fff0ce}.iv-menu .iv-card-title .price{font-size:10px;line-height:1;margin:0;white-space:nowrap;color:#f2ca73}.iv-menu .iv-card-effects{display:flex;flex-wrap:wrap;gap:3px;align-items:center}.iv-menu .iv-card-effects i{font-size:9px;font-style:normal;line-height:1;padding:3px 4px;border-radius:3px;background:#49634b;color:#e3e9ca;white-space:nowrap}.iv-menu[data-kind=upgrade][data-side=left] .iv-branches button{grid-template-columns:minmax(0,1fr) 44px}.iv-menu[data-kind=upgrade][data-side=left] .iv-branches button>.iv-card-copy{text-align:left;padding:0;background:none}.iv-menu[data-kind=upgrade] .iv-branches button:not(:disabled):hover{background:#354f3e!important}

/* Full viewport play surface; study controls are below the fold. */
html,body{overscroll-behavior:none}#ink-village{max-width:none;padding:0}.review-layout{display:block}.play-column{max-width:none;width:100%}#ink-village .iv-game{max-width:none;width:100%;height:100svh;display:flex;flex-direction:column;margin:0;border:0;border-radius:0;box-shadow:none;overflow:hidden}.iv-hud{height:52px;min-height:52px;padding:0 max(12px,env(safe-area-inset-right)) 0 max(12px,env(safe-area-inset-left));gap:14px}.iv-coins{font-size:22px}.iv-wave{max-width:150px;margin:auto}.iv-wave b{font-size:18px}.iv-wave span{font-size:8px}.iv-hud button{min-width:44px;min-height:44px}.iv-field{flex:1;min-height:0;overflow:hidden}#iv-canvas{position:absolute;inset:0}.iv-message{position:absolute;width:1px;height:1px;min-height:0;overflow:hidden;clip-path:inset(50%);padding:0;border:0}.iv-entry{width:29px;height:24px;font-size:10px}.studio-tools{margin:20px 12px}.integration-notes{max-width:640px;margin:30px auto;padding:0 24px 32px;color:#bccbb0;font-size:13px;line-height:1.6}.integration-notes h1{font-family:Georgia,serif;font-size:28px;letter-spacing:0;text-shadow:none}.integration-notes a{color:#e4c477}.iv-over{backdrop-filter:blur(3px);background:#20352edb}.iv-menu[data-kind=upgrade] .iv-branches button{min-height:54px}.iv-menu .iv-card-effects{gap:2px}.iv-menu .iv-card-effects i{padding:3px}.iv-actions #iv-sell{min-height:44px!important}@media(orientation:landscape){.iv-hud{height:46px;min-height:46px}.iv-wave{flex-direction:row;max-width:none;align-items:center;justify-content:center;gap:12px}.iv-coins{font-size:20px}.iv-hud button{min-height:40px}.iv-entry{height:22px}.iv-over{gap:8px}.iv-over b{font-size:32px}.fallen-seal{font-size:34px}}
#ink-village .iv-game{height:100svh}.iv-hud{height:46px;min-height:46px;gap:8px}.iv-coins{font-size:19px}.iv-wave b{font-size:16px}.iv-wave span{font-size:8px}.iv-hud button{min-height:44px;min-width:44px}.embedded .studio-tools,.embedded .integration-notes{display:none}.embedded body{overflow:hidden}@media(max-width:360px){.iv-hud{padding:0 8px;gap:5px}.iv-wave{max-width:100px}.iv-menu .iv-card-title strong{font-size:11px}}

/* Disable interaction without dissolving small-screen menu contrast. */
.iv-game button:disabled{opacity:1;filter:saturate(.35)}.iv-branches button:disabled .iv-card-title strong{color:#d3d1bf}.iv-branches button:disabled .price{color:#bbb79e}.iv-branches button:disabled canvas{opacity:.65}
/* Standalone playtest shell. The approved playfield keeps its full viewport. */
html,body{height:100%;overflow:hidden;background:#263d34}#ink-village .iv-game{height:100dvh}.iv-hud{box-sizing:content-box;padding-top:env(safe-area-inset-top);height:46px;min-height:46px}.iv-field{padding-bottom:env(safe-area-inset-bottom)}.game-cover{position:absolute;inset:0;z-index:8;display:grid;place-items:center;background:#172f29a6;backdrop-filter:blur(3px);text-align:center;padding:16px}.cover-card{width:min(310px,90vw);padding:24px 20px;background:#233c32f5;border:2px solid #d7c18c;border-radius:18px 7px 20px 8px;box-shadow:0 8px 0 #18312888;color:#f5e6be}.cover-eyebrow{font-size:9px;letter-spacing:2px;color:#b9caa4}.cover-card h1{font:900 52px/.89 Impact,'Arial Black',sans-serif;letter-spacing:2px;margin:20px 0 10px;transform:rotate(-2deg);text-shadow:2px 4px #13251e}.cover-card h1 em{font-style:normal;color:#e5bd67;font-size:1.15em}.cover-card .chapter{font:italic 20px Georgia,serif;margin:10px 0 20px}.cover-card p{font-size:14px;line-height:1.5;color:#d6ddbe}.cover-card h2{font:900 32px Georgia,serif;margin:6px 0 24px}.cover-primary,.cover-secondary{display:block;width:100%;border:0;border-radius:8px 4px 10px 5px;padding:12px;margin:10px 0;color:#273a2e;background:#edd08b;box-shadow:0 4px #aa864c;font:900 17px 'Trebuchet MS',sans-serif;letter-spacing:1px}.cover-primary:hover{background:#ffe4a4}.cover-secondary{background:#405c45;color:#e8dfbb;box-shadow:none;font-size:13px}.cover-card small{display:block;margin-top:19px;font-size:11px;color:#b8c7a4}.cover-card #asset-status{display:block;font-size:12px;line-height:1.4}.cover-card .pause-tip{font-size:12px;margin:20px 0 0}.tutorial{position:absolute;pointer-events:none;z-index:2;padding:10px 13px;border:2px solid #eed18c;background:#233c32f5;box-shadow:0 4px #142e2280;border-radius:6px 10px 6px 12px;color:#fff0c4}.tutorial b{display:block;font-size:13px;margin-bottom:4px}.tutorial span{display:block;font-size:12px;line-height:1.4;color:#d9e1c4}.iv-grid .tutorial-target{position:relative;border:3px solid #ffe493!important;background:#f5db8044!important;box-shadow:0 0 0 3px #334d2999,0 0 18px #ffe49388;animation:guide-pulse 1.4s infinite}.danger,.notice{position:absolute;z-index:2;pointer-events:none;left:50%;top:5px;transform:translateX(-50%);border-radius:5px;max-width:calc(100% - 18px);width:max-content;padding:7px 10px;font-size:11px;line-height:1.3;text-align:center;color:#ffe8bf;background:#7d382ce8;border:1px solid #f0ba7e}.danger b{display:inline-block;margin-right:4px}.notice{top:auto;bottom:8px;background:#263f32ee;border-color:#dec38a;font-size:12px;max-width:min(360px,calc(100% - 18px))}@keyframes guide-pulse{50%{box-shadow:0 0 0 3px #334d2999,0 0 24px #ffe493cc;background:#f5db8077}}@media(prefers-reduced-motion:reduce){.iv-grid .tutorial-target{animation:none}}@media(orientation:landscape) and (max-height:500px){.cover-card{padding:12px 22px;width:340px}.cover-card h1{font-size:34px;margin:10px 0}.cover-card h1 br{display:none}.cover-card h1 em{font-size:1em;margin-left:10px}.cover-card .chapter{font-size:18px;margin:8px 0}.cover-card p{font-size:12px;margin:8px 0}.cover-card p br{display:none}.cover-card small{margin-top:10px}.cover-primary{padding:10px;margin:7px 0}.cover-card h2{margin-bottom:14px}.tutorial{padding:7px 10px}.tutorial b{font-size:12px}.tutorial span{font-size:11px}}.game-paused #iv-tutorial{visibility:hidden}.iv-menu[data-kind=build]{pointer-events:none}

.danger{left:auto;right:8px;transform:none;font-size:11px}.iv-wave{max-width:160px}@media(max-width:360px){.iv-wave{max-width:120px}}

/* Same hand artwork and tap cadence as Tiny Frontlines. */
#iv-hand{position:absolute;z-index:5;width:54px;height:72px;pointer-events:none;transform:translate(-30%,-15%)}
#iv-hand svg{width:100%;height:100%;filter:drop-shadow(0 3px 1px #2345);animation:maul-tap 1.2s infinite}
#iv-hand .tap-ring{position:absolute;left:6px;top:-6px;width:42px;height:42px;border:4px solid #fff2b9;border-radius:50%;animation:maul-ring 1.2s infinite}
#iv-hand[hidden]{display:none}
@keyframes maul-tap{0%,100%{transform:translateY(-9px) rotate(-12deg)}45%,60%{transform:translateY(2px) rotate(-12deg)}}
@keyframes maul-ring{0%,100%{transform:scale(.5);opacity:0}45%{opacity:1}80%{transform:scale(1.5);opacity:0}}
@media(prefers-reduced-motion:reduce){#iv-hand svg,#iv-hand .tap-ring{animation:none}#iv-hand .tap-ring{opacity:.65}}

/* Composition 05 reserves the approved 56px control band. */
.iv-hud{height:54px;min-height:54px;border-bottom:2px solid #5e765c;background:#273e30}.iv-hud button{background:#496047}.iv-field{background:#3f693e}
@media(orientation:landscape){.iv-hud{height:44px;min-height:44px}}
/* Campaign controls stay readable on a narrow phone. */
.iv-health{display:flex;flex-direction:column;align-items:center;color:#deeba7;min-width:44px;font:800 14px/1.1 'Trebuchet MS',sans-serif}.iv-health small{font-size:7px;letter-spacing:.7px;margin-top:3px}.iv-health.critical{color:#ffa78e}.iv-coins{min-width:48px}.iv-hud{gap:6px}.iv-wave b{font-size:13px}.iv-wave span{font-size:8px}.iv-wave{min-width:76px}.iv-hud #iv-speed{font-size:11px;min-width:32px;padding:3px}.iv-hud #iv-sound,.iv-hud #iv-pause{min-width:34px;padding:4px}
.iv-menu[data-kind=upgrade]{background:#243b32f5;border:2px solid #dec98c;border-radius:7px;padding:7px;overflow:auto;overscroll-behavior:contain}.iv-menu[data-kind=upgrade] .iv-menuhead{display:flex!important;justify-content:space-between;height:24px}.iv-menu[data-kind=upgrade] .iv-menuhead b{display:block!important;font-size:12px}.iv-menu[data-kind=upgrade] .iv-branches{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.iv-menu[data-kind=upgrade] .iv-branches button,.iv-menu[data-kind=upgrade][data-side=left] .iv-branches button{grid-template-columns:32px minmax(0,1fr);min-height:61px;padding:4px;gap:4px}.iv-menu[data-kind=upgrade] .iv-branches canvas,.iv-menu[data-kind=upgrade][data-side=left] .iv-branches canvas{width:32px;height:40px;grid-column:1;grid-row:1}.iv-menu[data-kind=upgrade] .iv-branches button>.iv-card-copy,.iv-menu[data-kind=upgrade][data-side=left] .iv-branches button>.iv-card-copy{grid-column:2;grid-row:1;gap:4px}.iv-menu .iv-card-title{flex-wrap:wrap}.iv-menu .iv-card-title strong{font-size:11px}.iv-menu .iv-card-effects{font-size:9px;line-height:1.2}.iv-menu #iv-info{font-size:10px;line-height:1.4;margin:4px 0;padding:3px}.iv-menu .iv-menuhead button{background:none;border:0;color:#f6e5b4;font-size:22px;min-width:30px;min-height:28px}.iv-menu .iv-actions{margin:0}.iv-menu[data-kind=upgrade]:has(.iv-branches button:only-child) .iv-branches{grid-template-columns:1fr}
/* Approved cut-paper interface. Keep art and touch target sizes independent. */
.iv-hud button{position:relative;background:transparent!important;border:0;border-radius:0;box-shadow:none;color:#30402d;isolation:isolate;min-width:44px;min-height:44px;padding:10px}
.iv-hud button:before{content:'';position:absolute;inset:7px 5px;background:#e9d8ae;border:1px solid #f3e7c4;box-shadow:1px 2px #9a885c;border-radius:2px;z-index:-1}
.iv-hud button svg{width:20px;height:20px}.iv-hud #iv-speed{font-size:11px}
.iv-menu{background:#f2e2b9!important;color:#2c3e2c!important;border:1px solid #f8edcd!important;border-radius:2px!important;box-shadow:2px 3px #baa575,4px 7px 10px #18302455!important;padding:10px!important;overflow:auto}
.iv-menu:before,.iv-menu:after{display:none!important}.iv-menuhead{font:700 16px Georgia,serif!important}.iv-menuhead b{font-weight:700!important}.iv-chips{font-size:11px;color:#374930!important;letter-spacing:0;margin-top:6px}
#iv-menu[data-kind=upgrade]{display:grid;grid-template-columns:48px 1fr;gap:8px;align-items:start}#iv-menu[hidden]{display:none!important}.iv-menuhead,.iv-chips,.iv-actions,#iv-pause-note{grid-column:1/-1}
#iv-menu .iv-branches{display:flex;flex-direction:column;gap:6px;grid-column:1;width:48px;max-height:240px;overflow:auto;margin:0;padding:2px}
#iv-menu .iv-branches button{display:block!important;width:44px;min-height:44px!important;height:44px;flex-shrink:0;padding:2px;background:#e9d7ae!important;border:1px solid #b9aa7a;border-radius:2px;clip-path:none!important;box-shadow:1px 2px #ae9869}
#iv-menu .iv-branches button:before{display:none}#iv-menu .iv-branches canvas{width:38px;height:38px}#iv-menu .iv-branches .chosen{outline:2px solid #657c3d;outline-offset:-2px}#iv-menu .unavailable{opacity:.55}
#iv-menu #iv-info{grid-column:2;grid-row:3;margin:0;color:#2c3e2c;font-size:11px;line-height:1.4}#iv-info>strong{font:700 15px Georgia;display:block}.price{float:right;font:700 11px system-ui}.info-art{display:flex;gap:6px;align-items:center;margin:9px 0}.info-art canvas{width:55px;height:55px}.effect-tags{display:flex;gap:4px;flex-wrap:wrap}.effect-tags span{background:#71804024;padding:3px;font-size:9px}.stat-grid{display:grid;gap:5px;border-top:1px solid #b8ae83;padding-top:6px}.stat-grid span{display:flex;justify-content:space-between}#iv-info small{display:block;margin-top:8px;color:#78513a}.iv-actions{margin:0}.iv-actions #iv-sell{color:#435539!important}
#iv-paused .cover-card{background:#f2e2b9;color:#2c3e2c;border:1px solid #faefd2;border-radius:3px;box-shadow:3px 4px #baa575,5px 9px 15px #172b2455;width:236px;padding:20px}
#iv-paused h2{font:700 28px Georgia;margin:0 0 20px}#iv-paused .cover-primary{background:#425d39;color:#fff0cb;border-radius:2px;min-height:44px}#iv-paused .cover-secondary{background:transparent;color:#34452e;border:0;min-height:44px}#iv-paused .pause-tip{display:none}
#iv-notice{display:flex;align-items:center;gap:10px;transform:none;bottom:auto;max-width:none;min-height:70px;background:#f4e5bf;color:#2c3d2b;border:1.5px solid #4c5138;border-radius:14px 12px 14px 5px;box-shadow:2px 3px #baa575;padding:10px 12px;font:600 14px/1.3 Georgia;text-align:left;pointer-events:auto;z-index:4}
#iv-notice[hidden],.game-paused #iv-notice{display:none!important}#notice-icon{width:42px;height:48px;object-fit:contain}#iv-notice:after{content:'';position:absolute;bottom:-12px;left:60%;width:16px;height:18px;background:#f4e5bf;border-right:1px solid #4c5138;transform:skewY(32deg) rotate(19deg);clip-path:polygon(0 0,100% 0,100% 100%)}
@media(orientation:landscape){#ink-village .iv-game{flex-direction:row}.iv-hud{box-sizing:border-box;width:calc(56px + env(safe-area-inset-left));height:100%;min-height:0;flex:0 0 calc(56px + env(safe-area-inset-left));flex-direction:column;padding:10px 4px 6px calc(4px + env(safe-area-inset-left));gap:7px;border-bottom:0;border-right:2px solid #60764e}.iv-field{height:100%;width:0}.iv-coins{display:flex;flex-direction:column;font-size:18px;gap:0;line-height:1.2}.coin-emblem{font-size:16px}.iv-health{font-size:10px;text-align:center}.iv-health small{display:none}.iv-wave{flex:0 0 auto;display:block;width:46px;margin:0 0 auto;text-align:center}.iv-wave b{font-size:10px;line-height:1.5;white-space:normal}.iv-wave span{display:none}.iv-hud button{width:44px;flex:0 0 44px;margin:0}.iv-hud button:before{inset:7px 5px}#iv-notice{font-size:13px}.iv-branches{max-height:200px!important}}
#iv-menu[data-kind=upgrade]{background:transparent!important;border:0!important;box-shadow:none!important;padding:4px!important;overflow:visible}
#iv-menu[data-kind=upgrade] .iv-menuhead{display:none!important}
#iv-menu[data-kind=upgrade] .iv-branches{grid-row:1;max-height:min(294px,calc(100dvh - 130px))!important}
#iv-menu[data-kind=upgrade] #iv-info{grid-row:1;background:#f2e2b9;border:1px solid #f8edcd;border-radius:2px;box-shadow:2px 3px #baa575;padding:10px;min-width:0}
#iv-menu[data-kind=upgrade] .iv-actions{grid-row:2;grid-column:2}
#iv-menu[data-kind=upgrade] #iv-sell{background:#f2e2b9!important;padding:5px 9px;border-radius:2px}
#iv-menu .iv-branches canvas{background:transparent!important;border:0!important;border-radius:0!important}
#iv-menu[data-kind=upgrade]:has(#iv-branches[hidden]) #iv-info{grid-column:1/-1}
#ink-village #iv-brutal-details,#ink-village #iv-brutal-summary{display:block;color:#e5c786;font:700 11px/1.4 'Trebuchet MS',sans-serif;letter-spacing:0;text-align:center;margin:0}
#ink-village #iv-over .iv-secondary{background:transparent;box-shadow:none;color:#eadfbd;min-height:44px;margin-top:0}
/* Consistent currency, centered quiet controls, and explicit requirements. */
.coin-icon{display:inline-block;width:15px;height:17px;object-fit:contain;vertical-align:middle;flex:none}.hud-coin{width:21px;height:23px}.build-price,.price{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.build-price{font:700 13px system-ui;margin-left:7px}.iv-menuhead b{display:flex;align-items:center;justify-content:space-between;width:100%}
#ink-village .iv-hud button{display:flex;align-items:center;justify-content:center;padding:0!important;line-height:1;width:44px;height:44px;min-width:44px;flex-shrink:0;color:#30402d!important}
#ink-village .iv-hud button svg{display:block;flex:none;width:20px;height:20px;margin:0}
#ink-village .iv-hud button:hover,#ink-village .iv-hud button:focus-visible{color:#243823!important;background:transparent!important}
#ink-village .iv-hud button:hover:before{background:#f5e6bf}.iv-hud button:focus-visible{outline:2px solid #f4d987;outline-offset:-2px}
.iv-wave b .wave-label,.iv-wave b .wave-number{display:inline;font:inherit;color:inherit;letter-spacing:inherit}.iv-wave{min-width:0;padding:0 4px}
#iv-menu .upgrade-reason{font:700 11px/1.5 system-ui;color:#704529;background:#d7bd7b38;padding:6px;margin-top:8px;border-top:1px solid #b7a676}
#iv-menu .iv-branches .unavailable{opacity:1}#iv-menu .iv-branches .unavailable canvas{opacity:.45}
#iv-menu .iv-branches .unlock-badge{position:absolute;right:0;bottom:0;width:auto;min-width:22px;padding:1px 3px!important;border-radius:2px;background:#594b35!important;color:#fff0cc;font:700 9px/1.3 system-ui;pointer-events:none}
@media(orientation:landscape){.iv-wave{width:44px;min-width:0;max-width:44px;padding:7px 2px;box-sizing:border-box}.iv-wave b{display:flex;flex-direction:column;gap:3px;font-family:system-ui;font-size:10px!important;letter-spacing:0;line-height:1.3}.iv-wave b .wave-label{display:block;font-size:8px;letter-spacing:.5px}.iv-wave b .wave-number{display:block;white-space:nowrap}.iv-health{min-width:0;font-size:11px}.iv-health small{display:block;font-size:7px;letter-spacing:.3px;margin-top:3px}.iv-coins{min-width:0;letter-spacing:0}}
@media(orientation:portrait) and (max-width:390px){.iv-hud{gap:3px;padding-left:6px;padding-right:6px}.iv-coins{min-width:42px;font-size:17px;gap:3px}.iv-health{min-width:36px;font-size:11px}.iv-wave b{font-size:10px;letter-spacing:.2px}.iv-wave span{letter-spacing:.3px}.iv-wave{padding:0 2px}.hud-coin{width:18px;height:20px}}

/* Immediate branch names stay readable while intermediate art is in production. */
#iv-menu[data-kind=upgrade]{grid-template-columns:60px 1fr}
#iv-menu .iv-branches{width:60px}
#iv-menu .iv-branches button{width:54px;height:62px;min-height:62px!important}
#iv-menu .iv-branches canvas{width:32px;height:34px}
#iv-menu .iv-branches .branch-name{display:block;background:none;padding:0;border-radius:0;color:#2c3e2c;font:700 10px/1.3 system-ui;text-align:center}

/* Center the icon and label as one stack inside the branch card. */
#iv-menu .iv-branches button{display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:3px}
#iv-menu .iv-branches canvas{display:block;flex:none;width:34px;height:34px;margin:0 auto}
/* Grid buttons are game controls; keep the browser's touch flash and sticky hover off them. */
#ink-village .iv-grid button{-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}
@media(hover:none){#ink-village .iv-grid button:hover:not(.tutorial-target){background:transparent!important}}
/* The longer game title stays within the cover card on narrow screens. */
#iv-start .cover-card h1{font-size:clamp(30px,10vw,43px);letter-spacing:1px}
@media(orientation:landscape) and (max-height:500px){#iv-start .cover-card h1 br{display:block}#iv-start .cover-card h1 em{margin-left:0}}

/* Floating action cards: one purchase per tap, stable during combat. */
#iv-menu[data-kind=build],#iv-menu[data-kind=upgrade]{display:flex;flex-direction:column;gap:7px;background:transparent!important;border:0!important;box-shadow:none!important;padding:0!important;overflow:visible;pointer-events:none}
#iv-menu .iv-menuhead,#iv-menu .iv-chips{display:none!important}
#iv-menu button{pointer-events:auto}
#iv-menu[data-kind=upgrade] .iv-branches{width:100%;max-height:none!important;padding:0;overflow:visible;gap:6px;flex-shrink:0}
#iv-menu .iv-branches button,#iv-build{display:grid!important;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:7px;position:relative;width:100%;height:62px;min-height:62px!important;padding:6px;flex-shrink:0;background:#f2e2b9!important;color:#2c3e2c;border:1px solid #b9aa7a;border-radius:2px;box-shadow:1px 2px #ae9869;text-align:left}
#iv-menu .iv-branches canvas,#iv-build canvas{grid-column:1;grid-row:1;width:36px;height:40px;margin:0}
#iv-menu .upgrade-copy{display:flex;flex-direction:column;gap:5px;min-width:0;background:none;padding:0}
#iv-menu .branch-name{font:700 12px/1.2 'Trebuchet MS',sans-serif;text-align:left;white-space:nowrap}
#iv-menu .effect-tags{display:flex;gap:3px;flex-wrap:wrap}
#iv-menu .effect-tags span{font:700 10px/1.2 'Trebuchet MS',sans-serif;background:#71804024;padding:3px;border-radius:2px;color:#2c3e2c}
#iv-menu .upgrade-cost{display:flex;align-items:center;justify-content:flex-end;gap:3px;white-space:nowrap;font-size:12px;color:#2c3e2c;background:none;padding:0}
#iv-menu .iv-branches .unlock-badge{position:absolute;left:51px;right:auto;bottom:3px;min-width:0;width:auto;background:none!important;color:#78513a;font:700 9px/1.2 system-ui;padding:0!important}
#iv-menu .iv-branches button:has(.unlock-badge:not([hidden])) .upgrade-copy{padding-bottom:10px}
#iv-menu .iv-branches .unavailable{background:#e2d4b4!important}
#iv-menu .iv-branches .unavailable .branch-name,#iv-menu .iv-branches .unavailable .upgrade-cost{color:#756f58}
#iv-menu[data-kind=upgrade] .iv-actions{width:100%;margin:5px 0 0;padding:0;border:0}
#iv-menu[data-kind=upgrade] #iv-sell{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:44px;padding:8px!important;background:#e6d7b5!important;font-size:12px;border:1px solid #b9aa7a;box-shadow:1px 2px #ae9869;text-align:left}
@keyframes guide-shake{0%,100%{transform:translateX(0)}20%,60%{transform:translateX(-5px)}40%,80%{transform:translateX(5px)}}
#ink-village .guide-shake{animation:guide-shake .32s ease-in-out!important}
@media(prefers-reduced-motion:reduce){#ink-village .guide-shake{animation:none!important;outline:3px solid #ffe493;outline-offset:-3px}}
/* Keep every action visible on short landscape screens. */
#iv-menu{overflow-anchor:none}
@media(orientation:landscape) and (max-height:360px){
 #iv-menu[data-kind=upgrade]{gap:5px}
 #iv-menu .iv-branches button{height:50px;min-height:50px!important;padding:4px 6px}
 #iv-menu .iv-branches canvas{width:30px;height:34px}
 #iv-menu .iv-branches .upgrade-copy{gap:3px}
 #iv-menu[data-kind=upgrade] .iv-actions{margin-top:2px}
}

#ink-village .iv-grid .blocked-placement{border:3px solid #f26a58!important;background:#de594b44!important}
#iv-build.blocked-placement{background:#ebc3aa!important;border-color:#b94a39;color:#76342b;opacity:.85;filter:none}
