@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fraunces-vietnamese-500-normal-GOH_-EGq.woff2) format("woff2"),url(/assets/fraunces-vietnamese-500-normal-B-KbxExq.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fraunces-latin-ext-500-normal-Z5DV8IzT.woff2) format("woff2"),url(/assets/fraunces-latin-ext-500-normal-BMcFk1Xs.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fraunces-latin-500-normal-DnGCNyPD.woff2) format("woff2"),url(/assets/fraunces-latin-500-normal-BTR4KCeb.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fraunces-vietnamese-600-normal-BjlAJixd.woff2) format("woff2"),url(/assets/fraunces-vietnamese-600-normal-DlAl5EAR.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fraunces-latin-ext-600-normal-BtzmzP0X.woff2) format("woff2"),url(/assets/fraunces-latin-ext-600-normal-B0Dy4lqi.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fraunces-latin-600-normal-BFCDtZfi.woff2) format("woff2"),url(/assets/fraunces-latin-600-normal-DL5QCzvS.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-400-normal-DQukG94-.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-400-normal-obahsSVq.woff2) format("woff2"),url(/assets/inter-cyrillic-400-normal-HOLc17fK.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2) format("woff2"),url(/assets/inter-greek-ext-400-normal-KugGGMne.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-400-normal-B4URO6DV.woff2) format("woff2"),url(/assets/inter-greek-400-normal-q2sYcFCs.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-vietnamese-400-normal-DMkecbls.woff2) format("woff2"),url(/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-ext-400-normal-C1nco2VV.woff2) format("woff2"),url(/assets/inter-latin-ext-400-normal-77YHD8bZ.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2) format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-ext-600-normal-Dfes3d0z.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-600-normal-Bcila6Z-.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-600-normal-CWCymEST.woff2) format("woff2"),url(/assets/inter-cyrillic-600-normal-4D_pXhcN.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-ext-600-normal-DRtmH8MT.woff2) format("woff2"),url(/assets/inter-greek-ext-600-normal-B8X0CLgF.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-600-normal-plRanbMR.woff2) format("woff2"),url(/assets/inter-greek-600-normal-BZpKdvQh.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2) format("woff2"),url(/assets/inter-vietnamese-600-normal-BuLX-rYi.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-ext-600-normal-D2bJ5OIk.woff2) format("woff2"),url(/assets/inter-latin-ext-600-normal-CIVaiw4L.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2) format("woff2"),url(/assets/inter-latin-600-normal-CiBQ2DWP.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ocean: #0d3b4f;--sand: #e6d3a3;--grass: #7fa15a;--stone: #8d8d93;--panel: rgba(12, 20, 26, .82);--panel-line: rgba(230, 211, 163, .14);--ink: #e9e4d8;--ink-dim: #a9b4b8;--accent: #e6d3a3}*{box-sizing:border-box}[hidden]{display:none!important}html,body{margin:0;height:100%;background:var(--ocean);color:var(--ink);font-family:Inter,system-ui,sans-serif;overflow:hidden}#app{position:relative;height:100%}#world{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}#hud{position:absolute;top:1.25rem;left:1.5rem;pointer-events:none}#island-title{font-family:Fraunces,serif;font-weight:600;font-size:clamp(1.4rem,3vw,2.4rem);margin:0;letter-spacing:.01em;text-shadow:0 2px 12px rgba(0,0,0,.55)}#island-age{margin:.15rem 0 0 .1rem;font-size:.85rem;text-transform:capitalize;letter-spacing:.14em;color:var(--ink-dim)}#stocks{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem;margin:.7rem 0 0;padding:0;max-width:min(24rem,70vw)}#stocks li{display:flex;align-items:center;gap:.35rem;background:var(--panel);border:1px solid var(--panel-line);border-radius:999px;padding:.28rem .75rem;font-size:.8rem}#stocks b{font-weight:600;font-variant-numeric:tabular-nums}#stocks .stock-label{color:var(--ink-dim)}#stocks li.stock-empty{opacity:.55}#mood{display:inline-flex;align-items:center;gap:.35rem;margin-top:.45rem;background:var(--panel);border:1px solid var(--panel-line);border-radius:999px;padding:.28rem .75rem;font-size:.8rem;cursor:help}#age-progress{margin-top:.55rem;background:var(--panel);border:1px solid var(--panel-line);border-radius:.75rem;padding:.55rem .8rem .6rem;max-width:min(17rem,70vw)}#age-progress .age-next{font-family:Fraunces,serif;font-size:.9rem;color:var(--accent);text-transform:capitalize}#age-progress .age-track{height:.35rem;margin:.4rem 0 .3rem;border-radius:999px;background:#0006;overflow:hidden}#age-progress .age-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#b98d45,var(--sand));transition:width .6s ease}#age-progress .age-reading{font-size:.72rem;color:var(--ink-dim);font-variant-numeric:tabular-nums}#follow-pill{position:fixed;bottom:4.2rem;left:50%;transform:translate(-50%);background:var(--panel);border:1px solid var(--panel-line);border-radius:999px;padding:.35rem .9rem;font-size:.8rem;z-index:5;pointer-events:none}#compass{position:fixed;top:1rem;right:1rem;width:3.2rem;height:3.2rem;border-radius:50%;background:var(--panel);border:1px solid var(--panel-line);z-index:5;pointer-events:none}#compass-dial{position:absolute;top:0;right:0;bottom:0;left:0;will-change:transform}.compass-n{position:absolute;top:.18rem;left:50%;transform:translate(-50%);font-size:.7rem;font-weight:700;letter-spacing:.04em}.compass-needle{position:absolute;left:50%;top:50%;width:0;height:0;border-left:.28rem solid transparent;border-right:.28rem solid transparent;border-bottom:1.05rem solid #c0392b;transform:translate(-50%,-100%)}#building-panel{position:absolute;width:min(19rem,82vw);background:var(--panel);border:1px solid var(--panel-line);border-radius:.9rem;padding:.85rem 1rem .95rem;box-shadow:0 10px 34px #00000073;z-index:5}#building-panel h2{font-family:Fraunces,serif;font-weight:600;font-size:1.05rem;margin:0;padding-right:1.6rem}#building-panel .building-meta{margin:.15rem 0 .5rem;font-size:.72rem;letter-spacing:.12em;text-transform:capitalize;color:var(--ink-dim)}#building-panel .building-desc{margin:0 0 .55rem;font-size:.85rem;line-height:1.45}#building-panel ul{list-style:none;margin:0;padding:0;display:grid;gap:.3rem;font-size:.78rem;color:var(--ink-dim)}#building-panel .panel-close{position:absolute;top:.45rem;right:.55rem;background:none;border:0;color:var(--ink-dim);font-size:1.15rem;line-height:1;padding:.25rem;cursor:pointer}#building-panel .panel-close:hover{color:var(--ink)}#banner{position:absolute;top:1.25rem;left:50%;transform:translate(-50%);max-width:min(46rem,86vw);padding:.7rem 1.4rem;background:var(--panel);border:1px solid var(--panel-line);border-radius:999px;font-family:Fraunces,serif;font-size:1rem;text-align:center;box-shadow:0 8px 30px #0006;animation:banner-in .48s ease-out}@keyframes banner-in{0%{opacity:0;transform:translate(-50%) translateY(-.6rem)}}#feed{position:absolute;right:1.25rem;bottom:1.25rem;width:min(20rem,78vw);pointer-events:none}#play-button{position:absolute;bottom:1.5rem;left:50%;transform:translate(-50%);background:var(--sand);color:#22303a;border:0;border-radius:999px;padding:.8rem 2rem;font-family:Fraunces,serif;font-size:1.05rem;font-weight:600;cursor:pointer;box-shadow:0 8px 30px #00000073;transition:transform .16s ease,box-shadow .16s ease}#play-button:hover{transform:translate(-50%) translateY(-2px);box-shadow:0 12px 36px #0000008c}#join-modal{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#060c10b8;padding:1.5rem;z-index:10}.modal-card{background:var(--panel);border:1px solid var(--panel-line);border-radius:1rem;padding:1.4rem 1.6rem;width:min(54rem,94vw);max-height:88vh;overflow-y:auto;scrollbar-width:thin}.modal-actions button.ghost{background:transparent;border:1px solid var(--panel-line);color:var(--ink-dim)}#wiz-logo{text-align:center;padding:2.6rem 1rem 2.2rem}.modal-card .logo-kicker{font-family:Fraunces,serif;font-style:italic;font-size:1.05rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-dim);margin:0 0 .2rem}.modal-card .logo-title{font-family:Fraunces,serif;font-weight:700;font-size:clamp(2.6rem,7vw,4.6rem);letter-spacing:.06em;text-transform:uppercase;margin:0;background:linear-gradient(180deg,#f6e7bb,#e0bd72 45%,#a87e3c 85%);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 3px 14px rgba(0,0,0,.55))}.logo-rule{position:relative;width:min(22rem,70%);height:1px;margin:1.1rem auto 1rem;background:linear-gradient(90deg,transparent,#cfa85e 20%,#cfa85e 80%,transparent)}.logo-rule:after{content:"◆";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#cfa85e;font-size:.55rem;background:var(--panel);padding:0 .5rem}.modal-card .logo-sub{font-family:Fraunces,serif;font-style:italic;font-size:.95rem;color:var(--ink-dim);margin:0 0 1.6rem}.logo-actions{justify-content:center}.logo-credit{font-family:Fraunces,serif;font-style:italic;font-size:.72rem;letter-spacing:.08em;color:var(--ink-dim);opacity:.7;margin:1.6rem 0 0}.logo-credit a{color:inherit;text-decoration:underline;text-underline-offset:2px}.logo-credit a:hover{color:#cfa85e}.howto-list{list-style:none;margin:1rem 0 .4rem;padding:0;display:grid;gap:.75rem}.howto-list li{display:grid;grid-template-columns:2.4rem 1fr;gap:.7rem;align-items:start}.howto-glyph{display:grid;place-items:center;width:2.4rem;height:2.4rem;border:1px solid var(--panel-line);border-radius:50%;background:#e6d3a30f;font-size:1.05rem;line-height:1}.howto-list div{font-size:.85rem;line-height:1.5;color:var(--ink-dim)}.howto-list b{font-family:Fraunces,serif;font-weight:600;font-size:.95rem;color:var(--accent)}.modal-card .howto-note{font-family:Fraunces,serif;font-style:italic;text-align:center;margin:1rem 0 .4rem}#name-row{display:block;margin:1rem 0 .3rem;font-size:.8rem;color:var(--ink-dim)}#island-name{display:block;width:100%;margin-top:.3rem;background:#00000059;border:1px solid var(--panel-line);border-radius:.6rem;color:var(--ink);padding:.55rem .8rem;font-family:Fraunces,serif;font-size:1.05rem}.hint{font-size:.74rem;color:var(--ink-dim);margin:.2rem 0 .6rem}#doctrine-editor{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;margin:.6rem 0 .2rem}#skill-preview{border:1px solid var(--panel-line);border-radius:.6rem;background:#fff8e708;padding:.8rem 1rem;min-height:15rem;max-height:24rem;overflow-y:auto;scrollbar-width:thin;font-size:.8rem;line-height:1.55;color:var(--ink)}#skill-preview h1,#skill-preview h2,#skill-preview h3{font-family:Fraunces,serif;color:var(--accent);margin:.5rem 0 .35rem;line-height:1.25}#skill-preview h1{font-size:1.15rem}#skill-preview h2{font-size:1rem}#skill-preview h3{font-size:.9rem}#skill-preview p{margin:.35rem 0;color:var(--ink);font-size:.8rem}#skill-preview ul,#skill-preview ol{margin:.35rem 0;padding-left:1.2rem}#skill-preview li{margin:.2rem 0}#skill-preview code{background:#0006;border-radius:.3rem;padding:.05rem .35rem;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.72rem}#skill-preview hr{border:0;border-top:1px solid var(--panel-line);margin:.6rem 0}@media (max-width: 720px){#doctrine-editor{grid-template-columns:1fr}#skill-preview{display:none}}.modal-card h2{font-family:Fraunces,serif;font-weight:600;font-size:1.4rem;margin:0 0 .5rem;color:var(--accent)}.modal-card p{margin:.4rem 0;font-size:.86rem;color:var(--ink-dim);line-height:1.5}#civ-chips{display:flex;flex-wrap:wrap;gap:.4rem;margin:.8rem 0}#civ-chips button{background:transparent;border:1px solid var(--panel-line);border-radius:999px;color:var(--ink);padding:.35rem .9rem;font:inherit;font-size:.85rem;cursor:pointer}#civ-chips button[data-active]{border-color:var(--accent);color:var(--accent);font-weight:600}#edit-name-row{display:block;margin:0 0 .7rem;font-size:.8rem;color:var(--ink-dim)}#edit-name{display:block;width:100%;margin-top:.3rem;background:#00000059;border:1px solid var(--panel-line);border-radius:.6rem;color:var(--ink);padding:.55rem .8rem;font-family:inherit;font-size:.9rem}#skill-editor{width:100%;min-height:15rem;resize:vertical;background:#00000059;border:1px solid var(--panel-line);border-radius:.6rem;color:var(--ink);padding:.8rem;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.8rem;line-height:1.55}#skill-status{font-size:.75rem;color:var(--ink-dim)}.modal-actions{display:flex;gap:.6rem;margin:.8rem 0}.modal-actions button,#copy-prompt{background:var(--sand);color:#22303a;border:0;border-radius:.5rem;padding:.55rem 1.2rem;font:inherit;font-weight:600;cursor:pointer}#modal-close{background:transparent;border:1px solid var(--panel-line);color:var(--ink-dim)}#install-prompt{background:#00000073;border:1px solid var(--panel-line);border-radius:.6rem;padding:.8rem;font-size:.74rem;line-height:1.5;white-space:pre-wrap;word-break:break-word;max-height:14rem;overflow-y:auto;-webkit-user-select:all;user-select:all}#feed-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}#feed-list li{background:var(--panel);border:1px solid var(--panel-line);border-radius:.6rem;padding:.5rem .7rem;font-size:.82rem;line-height:1.45;transition:opacity .6s ease;animation:toast-in .32s ease-out}#feed-list li.fading{opacity:0}#feed-list li.world-moment{border-color:var(--accent);font-family:Fraunces,serif}@keyframes toast-in{0%{opacity:0;transform:translateY(.5rem)}}#chat{position:absolute;left:1.25rem;bottom:1.25rem;width:min(19rem,80vw);display:flex;flex-direction:column;gap:.5rem}#chat-list{list-style:none;margin:0;padding:0;max-height:11rem;overflow-y:auto;display:flex;flex-direction:column;gap:.3rem;scrollbar-width:thin}#chat-list li{background:var(--panel);border:1px solid var(--panel-line);border-radius:.5rem;padding:.35rem .6rem;font-size:.8rem}#chat-list li b{color:var(--accent);font-weight:600}#chat-form{display:flex;gap:.4rem}#chat-form input{flex:1;background:var(--panel);border:1px solid var(--panel-line);border-radius:.5rem;color:var(--ink);padding:.5rem .7rem;font:inherit;font-size:.85rem}#chat-form button{background:var(--sand);color:#22303a;border:0;border-radius:.5rem;padding:.5rem .9rem;font:inherit;font-size:.85rem;font-weight:600;cursor:pointer}#recap{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;gap:.8rem;background:#060c10c7;padding:2rem;text-align:center}#recap h2{font-family:Fraunces,serif;font-size:2rem;margin:0}#recap p{max-width:38rem;color:var(--ink-dim)}#recap ul{list-style:none;margin:0;padding:0;max-height:40vh;overflow-y:auto;display:flex;flex-direction:column;gap:.4rem}#recap li{background:var(--panel);border:1px solid var(--panel-line);border-radius:.5rem;padding:.5rem .8rem;font-size:.85rem}#recap button{justify-self:center;background:var(--sand);color:#22303a;border:0;border-radius:999px;padding:.6rem 1.6rem;font:inherit;font-weight:600;cursor:pointer}:focus-visible{outline:2px solid var(--sand);outline-offset:2px}@media (max-width: 640px){#feed{width:14rem;font-size:.9em}#hud{left:1rem}}@media (prefers-reduced-motion: reduce){#banner{animation:none}}
