*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;font:16px/1.65 Arial,sans-serif;background:var(--paper);color:var(--ink)}button,input,select,textarea{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}img{display:block;max-width:100%;height:auto}button:disabled{opacity:.5;cursor:wait}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(38px,5.3vw,72px);line-height:1.03;letter-spacing:-.055em}h2{font-size:clamp(26px,3vw,38px);line-height:1.1;letter-spacing:-.035em}h3{font-size:21px;line-height:1.25;letter-spacing:-.02em}p{max-width:75ch}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,canvas:focus-visible{outline:3px solid var(--focus);outline-offset:4px}[hidden]{display:none!important}.wrap{max-width:1320px;margin:auto;padding:0 32px}.sr-only,.skip{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip:focus{position:fixed;left:15px;top:15px;width:auto;height:auto;clip-path:none;padding:12px;background:var(--panel);z-index:120}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.15em;text-transform:uppercase;display:block;color:var(--accent);margin-bottom:18px}.muted{color:var(--muted)}.button,.save-button,.filter-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:1px solid var(--line);background:var(--panel);color:var(--ink);padding:11px 19px;border-radius:var(--radius);font-weight:700;font-size:14px;min-height:44px;text-decoration:none}.button.primary{background:var(--accent);color:var(--on-accent);border-color:transparent}.button:hover,.save-button:hover{filter:brightness(.96);text-decoration:none}.save-button{padding:8px 12px;font-size:12px}.save-button[aria-pressed="true"]{background:var(--soft);border-color:var(--accent)}.icon{width:20px;height:20px;flex-shrink:0}.actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.section-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:24px}.section-head h2{margin-bottom:9px}.section-head p{margin-bottom:0;color:var(--muted);font-size:14px}.section-head>a{font-size:14px;font-weight:700;white-space:nowrap}.brand{font-size:25px;letter-spacing:-.05em;font-weight:900;display:inline-flex;align-items:center;gap:10px;line-height:1.1}.brand img{width:36px;height:36px}.brand small{display:block;font-size:9px;letter-spacing:.11em;text-transform:uppercase;margin-top:6px;font-weight:600}.header-search{display:flex;align-items:center;gap:8px}.header-search input{width:180px;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:var(--radius);padding:10px 12px}.header-search button{background:none;border:0;color:var(--ink);padding:8px}.site-header{position:relative;z-index:35}.site-nav{display:flex;gap:22px;align-items:center;font-size:13px;font-weight:700}.menu-toggle{display:none;border:1px solid var(--line);background:var(--panel);color:var(--ink);padding:9px;border-radius:var(--radius)}.footer{margin-top:65px;border-top:1px solid var(--line);padding:35px 0 28px}.footer-main{display:flex;justify-content:space-between;gap:50px}.footer p{font-size:13px;color:var(--muted);margin:14px 0;max-width:380px}.footer nav{display:flex;flex-wrap:wrap;align-content:start;gap:12px 22px;max-width:500px;font-size:13px}.footer nav button{border:0;background:none;color:inherit;padding:0;text-decoration:underline}.footer small{font-size:11px;color:var(--muted)}.storage-notice{position:fixed;z-index:90;bottom:18px;right:18px;width:min(480px,calc(100% - 36px));padding:20px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 12px 70px #0004}.storage-notice strong{display:block;font-size:16px}.storage-notice p{font-size:12px;color:var(--muted);margin:8px 0 12px}.storage-notice .button{font-size:12px;padding:8px 12px}.storage-notice a{text-decoration:underline}dialog{border:1px solid var(--line);border-radius:var(--radius);padding:28px;max-width:620px;width:calc(100% - 32px);max-height:88vh;overflow:auto;background:var(--panel);color:var(--ink)}dialog::backdrop{background:#050e20c9}.dialog-head{display:flex;justify-content:space-between;align-items:start;gap:20px}.dialog-head h2{font-size:26px}.dialog-head button{background:var(--soft);color:var(--ink);border:0;border-radius:8px;width:42px;height:42px;font-size:24px}.setting-line{display:flex;gap:12px;align-items:center;margin:20px 0}.setting-line input{width:22px;height:22px}#notice{position:fixed;z-index:110;bottom:20px;left:20px;max-width:calc(100% - 40px);padding:15px 22px;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:var(--radius);box-shadow:0 4px 24px #0002}.page-intro{padding:58px 0 32px}.page-intro h1{font-size:clamp(36px,5vw,64px);max-width:850px}.page-intro p{font-size:18px;color:var(--muted);max-width:780px}.page-intro .eyebrow{margin-bottom:14px}.breadcrumb{display:flex;flex-wrap:wrap;gap:10px;font-size:12px;color:var(--muted);padding-top:25px}.catalog-controls{border:1px solid var(--line);padding:24px;background:var(--panel);border-radius:var(--radius);margin-bottom:25px}.filter-fields{display:grid;grid-template-columns:minmax(0,1fr) 170px 170px;gap:16px}.field label,.filter-fields label{display:block;font-size:12px;font-weight:700;margin-bottom:7px}input,textarea,select{max-width:100%;border:1px solid var(--line);background:var(--paper);color:var(--ink);padding:12px;border-radius:8px}input:not([type="radio"]):not([type="checkbox"]),textarea,select{width:100%}textarea{resize:vertical;min-height:135px}.filters{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.filter-button{font-size:12px;padding:7px 13px}.filter-button[aria-pressed="true"]{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.result-row{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:16px 0}.result-row p{margin:0;font-size:13px;color:var(--muted)}.catalog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.empty-state{padding:40px;border:1px dashed var(--line);border-radius:var(--radius);text-align:center}.game-card{min-width:0}.game-card img{width:100%;object-fit:cover;aspect-ratio:16/10}.game-card h3{margin:12px 0 8px}.game-card p{font-size:13px;color:var(--muted);margin-bottom:12px}.card-meta{display:flex;justify-content:space-between;gap:8px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.card-actions{display:flex;justify-content:space-between;flex-wrap:wrap;align-items:center;gap:8px}.card-actions a{font-size:13px;font-weight:700}.rating{font-size:11px;color:var(--muted);display:block;margin:10px 0}.status-tag{font-size:10px;font-weight:800;padding:5px 9px;border-radius:20px;background:var(--panel);color:var(--ink);display:inline-block}.categories{display:flex;flex-wrap:wrap;gap:10px}.categories a{padding:14px 22px;border:1px solid var(--line);border-radius:var(--radius);font-weight:700;font-size:13px;background:var(--panel)}.community-ranking{list-style:none;padding:0;margin:22px 0 0;counter-reset:rank}.community-ranking li{counter-increment:rank;display:grid;grid-template-columns:35px 58px 1fr;gap:15px;align-items:center;padding:15px 0;border-top:1px solid var(--line)}.community-ranking li:before{content:"0" counter(rank);font-weight:800;color:var(--accent)}.community-ranking img{width:58px;height:58px;object-fit:cover;border-radius:10px}.community-ranking h3{font-size:16px;margin:0}.community-ranking .rating{margin:3px 0}.reading-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.reading-grid article{border:1px solid var(--line);padding:28px;border-radius:var(--radius);background:var(--panel)}.reading-grid article h2{font-size:26px}.reading-grid article p{font-size:15px;color:var(--muted);margin-bottom:0}.contact-layout{display:grid;grid-template-columns:minmax(0,1.4fr) 1fr;gap:40px}.contact-form,.community-box{padding:30px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel)}.field{margin-bottom:18px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}.check-label{display:flex;gap:10px;align-items:start;font-size:12px;margin:14px 0 20px}.check-label input{flex-shrink:0;margin-top:5px}.form-status{font-size:13px;margin:14px 0 0;min-height:24px}.contact-aside img{aspect-ratio:4/3;object-fit:cover;width:100%;border-radius:var(--radius);margin-bottom:22px}.contact-aside h2{font-size:25px}.contact-aside p{font-size:14px;color:var(--muted)}.game-heading{display:flex;align-items:end;justify-content:space-between;gap:25px;padding:30px 0}.game-heading h1{font-size:clamp(35px,4.5vw,60px);margin-bottom:15px}.game-heading p{margin:0;color:var(--muted);max-width:700px}.play-layout{display:grid;grid-template-columns:minmax(0,3fr) minmax(240px,1fr);gap:25px}.play-area{border:1px solid var(--line);background:var(--panel);border-radius:var(--radius);overflow:hidden;min-width:0}.play-area:fullscreen{max-width:1100px;margin:auto;overflow:auto;padding:20px}.game-hud{display:flex;gap:27px;align-items:center;padding:14px 20px;background:var(--soft);font-size:11px}.game-hud strong{display:block;font-size:21px;line-height:1.2}.game-hud button{margin-left:auto}.canvas-wrap{position:relative}canvas{display:block;width:100%;height:auto;aspect-ratio:9/5;touch-action:none}.game-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:25px;background:#081627cc;color:#fff}.game-overlay h2{font-size:30px;margin-bottom:10px}.game-overlay p{font-size:14px;max-width:450px}.game-controls{display:flex;flex-wrap:wrap;gap:8px;padding:14px}.game-controls .button{font-size:12px;padding:8px 13px}.game-status{font-size:12px;padding:0 18px 15px;margin:0;min-height:32px}.aim-control{padding:12px 20px 0;font-size:12px}.aim-control input{width:100%;padding:0}.game-essential{background:var(--soft);border-radius:var(--radius);overflow:hidden}.game-essential img{width:100%;aspect-ratio:4/3;object-fit:cover}.game-essential div{padding:22px}.game-essential h2{font-size:23px}.game-essential p,.game-essential li{font-size:13px}.game-notes{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:25px 0 45px}.game-notes article{border-left:3px solid var(--accent);padding:10px 22px}.game-notes h2{font-size:23px}.game-notes p{font-size:14px;color:var(--muted);margin-bottom:0}.preview-strip{margin:40px 0}.preview-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.preview-grid button{border:1px solid var(--line);padding:0;border-radius:var(--radius);background:var(--panel);color:var(--ink);text-align:left;overflow:hidden}.preview-grid img{width:100%;aspect-ratio:9/5;object-fit:cover}.preview-grid span{display:block;padding:12px 18px;font-size:12px}#preview-dialog{max-width:1100px}.community-top{display:flex;gap:30px;justify-content:space-between;align-items:start}.community-top h2{font-size:30px}.community-forms{display:grid;grid-template-columns:1fr 1fr;gap:35px}.rate-options{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.rate-options label{display:flex;gap:5px;align-items:center;padding:9px;border:1px solid var(--line);border-radius:8px}.rate-options input{margin:0}.community-forms h3{margin-top:24px}#comments-list article{border-bottom:1px solid var(--line);padding:17px 0}#comments-list h3{font-size:16px;margin:0}#comments-list time{font-size:11px;color:var(--muted)}#comments-list p{font-size:14px;margin-top:8px;overflow-wrap:anywhere}.similar{margin-top:50px}.concept-page{display:grid;grid-template-columns:1.2fr 1fr;gap:35px;align-items:center}.concept-page>img{width:100%;border-radius:var(--radius);object-fit:cover;aspect-ratio:4/3}.concept-page h2{font-size:27px}.concept-page p{color:var(--muted)}.about-art{width:100%;max-height:480px;object-fit:cover;border-radius:var(--radius);margin-bottom:32px}.noscript{padding:20px;background:var(--soft)}
@media(max-width:1000px){.wrap{padding:0 24px}.site-nav{gap:15px}.header-search input{width:140px}.catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.play-layout{grid-template-columns:1fr}.game-essential{display:grid;grid-template-columns:230px 1fr}.game-essential img{height:100%;aspect-ratio:auto}.footer-main{gap:25px}}
@media(max-width:700px){html{scroll-padding-top:90px}.wrap{padding:0 18px}h1{font-size:40px}h2{font-size:29px}.header-search input{width:100%}.menu-toggle{display:inline-flex}.site-nav{display:none}.site-nav.open{display:flex;position:absolute;top:100%;left:0;right:0;padding:20px;flex-wrap:wrap;background:var(--panel);border-bottom:1px solid var(--line);z-index:50}.section-head{align-items:start}.section-head>a{white-space:normal;max-width:100px;font-size:12px}.catalog-grid{grid-template-columns:1fr;gap:22px}.filter-fields{grid-template-columns:1fr 1fr}.filter-fields>div:first-child{grid-column:1/-1}.filter-fields input{min-width:0}.catalog-controls{padding:17px}.filter-button{font-size:11px;padding:7px 10px}.reading-grid,.contact-layout,.form-row,.game-notes,.preview-grid,.community-forms,.concept-page{grid-template-columns:1fr}.page-intro{padding:35px 0 20px}.page-intro h1{font-size:39px}.page-intro p{font-size:16px}.reading-grid article,.contact-form,.community-box{padding:22px}.game-heading{display:block}.game-heading>.actions{margin-top:18px}.game-hud{gap:20px;padding:13px}.game-hud .button{font-size:10px;padding:7px}.game-hud strong{font-size:18px}.game-overlay{padding:15px}.game-overlay h2{font-size:24px}.game-overlay p{font-size:12px;margin-bottom:12px}.game-controls{padding:10px;gap:7px}.game-controls .button{font-size:11px;padding:8px 10px}.game-essential{display:block}.game-essential img{aspect-ratio:16/9;height:auto}.community-top{display:block}.footer-main{display:block}.footer nav{margin-top:20px}.categories a{padding:11px 16px;font-size:12px}.storage-notice{padding:16px;bottom:10px;right:10px;width:calc(100% - 20px)}.about-art{max-height:300px}.concept-page{gap:22px}.play-area:fullscreen{padding:0}.preview-strip{margin:30px 0}.contact-aside{order:2}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

.play-area:fullscreen{box-sizing:border-box;width:100%;height:100dvh;max-width:none;display:flex;flex-direction:column;padding:12px;overflow:auto}.play-area:fullscreen .canvas-wrap{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;background:#071625}.play-area:fullscreen canvas{height:100%;width:100%;object-fit:contain}.play-area:fullscreen .game-hud,.play-area:fullscreen .game-controls{flex-shrink:0}.play-area:fullscreen .game-status{flex-shrink:0;margin:6px 12px}

/* Vireluma / island atlas and handbound journal. Distinct editorial page layouts. */
.island-index .page-intro{max-width:950px}
.island-atlas{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(270px,.75fr);gap:0;background:var(--soft);border:1px solid var(--line);border-radius:26px;overflow:hidden;margin-bottom:34px}
.island-atlas .atlas-visual{min-height:305px;overflow:hidden}
.island-atlas .atlas-visual img{width:100%;height:100%;object-fit:cover;object-position:center 55%}
.island-atlas .atlas-prose{padding:34px 34px 28px;display:flex;flex-direction:column;justify-content:center;gap:9px}
.island-atlas h2{font-size:clamp(26px,2.8vw,38px);margin:0}
.island-atlas p{font-size:14px;max-width:46ch;color:var(--muted);margin:0}
.island-atlas .atlas-coordinates{display:flex;flex-wrap:wrap;gap:20px;border-top:1px solid var(--line);margin-top:15px;padding-top:14px;font-size:11px;font-weight:700}
.island-atlas .atlas-coordinates strong{font-size:24px;display:block;color:var(--accent);line-height:1.1}
.island-split{display:grid;grid-template-columns:minmax(205px,.30fr) minmax(0,1fr);gap:26px;align-items:start}
.island-route{border:1px solid var(--line);padding:30px 24px;background:#fffef4;border-radius:20px;position:sticky;top:115px}
.island-route h2{font-size:27px}
.island-route ol{list-style:none;counter-reset:harbour;padding:0;margin:26px 0}
.island-route li{counter-increment:harbour;display:grid;grid-template-columns:32px 1fr;column-gap:10px;border-top:1px dashed var(--line);padding:16px 0;font-size:13px}
.island-route li:before{content:counter(harbour,decimal-leading-zero);color:var(--accent);font-weight:900;font-size:12px;grid-row:span 2}
.island-route li span{color:var(--muted)}
.island-route .button{width:100%}
.island-discover{min-width:0}
.island-discover .catalog-controls{border-radius:18px;background:var(--panel);padding:22px}
.island-discover .filter-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.island-discover .filter-fields>div:first-child{grid-column:1/-1}
.island-index .catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.island-index .game-card .voyage-sheet{display:flex;flex-direction:column;height:100%}
.island-index .game-card .voyage-window{padding:11px 11px 0}
.island-index .game-card .voyage-window .cover-link{margin:0;display:block}
.island-index .game-card .voyage-window img{aspect-ratio:1.45;object-fit:cover}
.island-index .game-card .voyage-details{flex:1;display:flex;min-width:0}
.island-index .game-card .voyage-details .card-body{width:100%;display:flex;flex-direction:column}
.island-index .game-card .card-actions{margin-top:auto}
.island-journal .journal-hero{display:grid;grid-template-columns:1fr minmax(300px,.8fr);gap:35px;align-items:center;padding-top:18px}
.island-journal .journal-hero .page-intro{padding-top:34px}
.island-journal .journal-illustration{margin:0;position:relative;transform:rotate(-1.2deg);box-shadow:0 15px 45px #1232;border-radius:25px;overflow:hidden}
.island-journal .journal-illustration img{width:100%;height:270px;object-fit:cover}
.island-journal .journal-illustration figcaption{padding:10px 15px;font-size:12px;background:#fffef4;color:#31584e;font-weight:700}
.island-journal .journal-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:32px;margin-top:38px;align-items:start}
.island-journal .journal-advice{background:var(--soft);border-radius:22px;padding:28px}
.island-journal .journal-advice h2{font-size:25px}
.island-journal .journal-advice p,.island-journal .journal-advice dd{color:var(--muted);font-size:13px}
.island-journal .journal-advice dl{margin:25px 0}
.island-journal .journal-advice dl div{border-top:1px solid var(--line);padding:12px 0}
.island-journal .journal-advice dt{font-weight:800}
.island-journal .journal-advice dd{margin:4px 0 0}
.island-journal .journal-pages{min-width:0}
.island-journal .catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.island-journal .game-card .voyage-sheet{display:flex;flex-direction:column;height:100%}
.island-journal .game-card .voyage-window{padding:10px 10px 0}
.island-journal .game-card .voyage-window .cover-link{margin:0}
.island-journal .game-card .voyage-details{flex:1}
.island-journal .game-card .voyage-details .card-body{display:flex;flex-direction:column;height:100%}
.island-journal .game-card .card-actions{margin-top:auto}
@media(max-width:1120px){.island-split{grid-template-columns:minmax(0,1fr)}.island-route{position:static;display:grid;grid-template-columns:minmax(180px,.5fr) 1fr;column-gap:25px}.island-route .eyebrow,.island-route h2{grid-column:1}.island-route ol{grid-column:2;grid-row:1/span 3;margin:0}.island-route .button{grid-column:1}.island-journal .journal-layout{grid-template-columns:220px minmax(0,1fr)}}
@media(max-width:720px){.island-atlas,.island-journal .journal-hero{grid-template-columns:1fr}.island-atlas .atlas-visual{min-height:220px;max-height:290px}.island-atlas .atlas-prose{padding:24px}.island-route{display:block}.island-route ol{margin:16px 0}.island-index .catalog-grid,.island-journal .catalog-grid{grid-template-columns:1fr}.island-journal .journal-layout{grid-template-columns:1fr}.island-journal .journal-illustration img{height:220px}.island-journal .journal-hero{gap:5px}.island-journal .journal-advice{padding:22px}}
