:root{
    --mist:#FAFAF9;
    --ink:#17181A;
    --faint:#615E69;
    --seal:#17181A;
    --mono:'Share Tech Mono', ui-monospace, monospace;
    --hand:'Zen Old Mincho', serif;
    --brush:'Yuji Syuku', serif;
    --pixel:'Share Tech Mono', monospace;
    --serif:'Zen Old Mincho', serif;
    --gothic:'Zen Old Mincho', serif;
  }
  *{margin:0;padding:0;box-sizing:border-box;border-radius:0 !important;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--mist);
    color:var(--ink);
    font-family:var(--mono);
    overflow-x:hidden;
    cursor:crosshair;
  }

  #garden,#inkCanvas{
    position:fixed;inset:0;width:100vw;height:100vh;
    pointer-events:none;
  }
  #garden{z-index:1;}
  #inkCanvas{z-index:2;}

  .grain{
    position:fixed;inset:0;z-index:9;pointer-events:none;
    opacity:.05;mix-blend-mode:multiply;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)'/%3E%3C/svg%3E");
  }

  .halftone{
    position:fixed;inset:0;z-index:8;pointer-events:none;
    opacity:.1;mix-blend-mode:multiply;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='72'%3E%3Cg fill='%2317181A'%3E%3Cpath d='M12 8l.8 2.2 2.2.8-2.2.8-.8 2.2-.8-2.2-2.2-.8 2.2-.8z'/%3E%3Cpath d='M52 34l.6 1.6 1.6.6-1.6.6-.6 1.6-.6-1.6-1.6-.6 1.6-.6z'/%3E%3Ccircle cx='30' cy='58' r='.8'/%3E%3Ccircle cx='64' cy='12' r='.6'/%3E%3C/g%3E%3C/svg%3E");
    background-size:72px 72px;
  }

  header{
    position:fixed;top:0;left:0;right:0;z-index:20;
    display:flex;justify-content:space-between;align-items:center;
    padding:18px 22px;font-size:12px;letter-spacing:.14em;
    font-family:var(--pixel);
    mix-blend-mode:multiply;
  }
  #brandEl{display:inline-flex;align-items:center;text-decoration:none;}
  .brand-mark{height:17px;width:auto;display:block;opacity:.86;
    image-rendering:auto;transition:opacity .3s ease;
    animation:logolife 6.5s ease-in-out infinite;}
  #brandEl:hover .brand-mark{opacity:1;}
  .brand-wordmark{font-family:var(--mono);font-size:20px;font-weight:700;line-height:17px;letter-spacing:-.7px;color:var(--ink);white-space:nowrap;}
  @media (max-width:640px){.brand-mark{height:14px;}}
  @media (max-width:640px){.brand-wordmark{font-size:16px;line-height:14px;}}

  .lang-toggle button{
    background:none;border:none;font:inherit;color:var(--faint);
    cursor:pointer;letter-spacing:.14em;padding:2px 4px;
  }
  .lang-toggle button.active{color:var(--seal);}
  .lang-toggle #btnSound{color:var(--faint);}
  .lang-toggle #btnSound.on{color:var(--seal);}
  .lang-toggle button:focus-visible{outline:1px solid var(--ink);outline-offset:2px;}

  main{position:relative;z-index:3;}

  #threshold{
    min-height:100vh;
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    position:relative;
  }
  #figureZone{
    width:min(60vmin,420px);height:min(60vmin,420px);
    cursor:pointer;position:relative;
    background:transparent;border:none;
  }
  #figureZone:focus-visible{outline:1px dashed var(--faint);outline-offset:12px;}

  .below{margin-top:3vh;}
  .mantra{
    font-family:var(--hand);
    font-size:clamp(14px,2vmin,18px);
    line-height:2;text-align:center;
    width:max-content;max-width:80vw;
    opacity:0;transition:opacity .9s ease;
  }
  body.incarnated:not(.form-open) .mantra{opacity:.85;}
  .formNav{
    display:flex;flex-direction:column;align-items:center;gap:16px;
    opacity:0;pointer-events:none;transition:opacity .5s ease;
    width:max-content;
  }
  body.form-open .formNav{opacity:1;pointer-events:auto;}
  .below{display:flex;flex-direction:column;align-items:center;gap:22px;margin-top:3vh;}
  .below .formName{
    font-family:var(--serif);font-weight:500;
    font-size:clamp(17px,2.6vmin,22px);letter-spacing:.4em;text-indent:.4em;
    opacity:0;transition:opacity .6s ease;
  }
  body.form-open .below .formName,
  body.form-open .below .enter{opacity:1;pointer-events:auto;}
  .below .enter{opacity:0;pointer-events:none;transition:opacity .6s ease;}
  .formName{
    font-family:var(--serif);font-weight:500;
    font-size:clamp(16px,2.8vmin,23px);letter-spacing:.42em;
    text-indent:.42em;
  }
  .enter{
    font-size:10px;letter-spacing:.34em;text-indent:.34em;
    color:var(--seal);text-decoration:none;
    border:1px solid var(--seal);padding:8px 24px;
    transition:background .3s ease,color .3s ease;
  }
  .enter:hover{background:var(--seal);color:var(--mist);}
  .enter:focus-visible{outline:1px solid var(--ink);outline-offset:3px;}
  .hint{
    font-family:var(--pixel);
    font-size:11px;letter-spacing:.3em;color:var(--faint);
    margin-top:4vh;opacity:0;transition:opacity 1.4s ease .8s;
  }
  body.incarnated .hint{opacity:1;}

  .station{
    min-height:92vh;
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    position:relative;padding:14vh 8vw;
    overflow:hidden;
  }
  .ghost{
    position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
    font-family:var(--brush);
    font-size:52vmin;line-height:1;
    color:rgba(23,24,26,.065);
    filter:blur(7px);
    pointer-events:none;user-select:none;
  }
  .station h2{
    font-family:var(--serif);font-weight:500;
    font-size:clamp(22px,3.4vmin,30px);letter-spacing:.4em;text-indent:.4em;
    margin-bottom:5vh;
  }
  .screen{
    width:min(90vw,620px);margin:0 auto;position:relative;
    background:transparent;
    opacity:0;transform:translateY(26px);
    transition:opacity .7s ease, transform .7s ease;
  }
  body[data-view] .screen{opacity:1;transform:none;}
  .screen.on{opacity:1;transform:none;}
  .screen-bar{
    display:flex;justify-content:flex-end;align-items:center;
    padding:0 2px 12px;
  }
  .screen-bar .bar-x{font-family:var(--mono);color:var(--faint);font-size:10px;letter-spacing:.3em;text-decoration:none;transition:color .3s ease;}
  .screen-bar .bar-x:hover{color:var(--seal);}
  .screen-body{padding:0 0 6vh;display:flex;flex-direction:column;align-items:center;}
  .page{max-width:660px;width:100%;display:flex;flex-direction:column;align-items:center;gap:0;}
  .page h2{margin-bottom:1.5vh;}
  .page .lede{font-family:var(--serif);font-size:13px;line-height:1.95;text-align:center;max-width:40ch;opacity:.9;margin-bottom:5vh;}
  .page section{width:100%;border-top:1px solid rgba(23,24,26,.18);padding:4vh 0;text-align:center;}
  .page section:last-of-type{border-bottom:1px solid rgba(23,24,26,.18);}
  .page h3{font-family:var(--mono);font-size:10px;letter-spacing:.34em;color:var(--seal);margin-bottom:2.4vh;}
  .page p{font-size:12px;line-height:1.95;letter-spacing:.03em;max-width:46ch;margin:0 auto 1.4em;}
  .page .mod{text-align:left;max-width:52ch;}
  .page .mod b{font-family:var(--serif);font-weight:500;color:var(--seal);letter-spacing:.06em;}
  .page a.inline{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--seal);padding-bottom:1px;transition:color .3s ease;}
  .page a.inline:hover{color:var(--seal);}
  .page .links{display:flex;flex-direction:column;gap:1.4vh;}
  .page .links a{font-family:var(--mono);font-size:11px;letter-spacing:.16em;color:var(--ink);text-decoration:none;display:flex;justify-content:space-between;border-bottom:1px solid rgba(23,24,26,.14);padding:12px 2px;transition:color .3s ease,padding-left .3s ease;}
  .page .links a:hover{color:var(--seal);padding-left:8px;}
  .page .links a .meta{color:var(--faint);font-size:9px;letter-spacing:.2em;}
  .page .cta{margin-top:5vh;font-family:var(--mono);font-size:10px;letter-spacing:.3em;color:#6B6771;border:1px solid rgba(23,24,26,.26);padding:14px 34px;text-decoration:none;transition:background .3s ease,color .3s ease,border-color .3s ease;}
  .page .cta:hover{background:var(--seal);border-color:var(--seal);color:var(--mist);}
  .page .foot-nav{margin-top:8vh;display:flex;gap:26px;font-family:var(--mono);font-size:9px;letter-spacing:.24em;}
  .page .foot-nav a{color:var(--faint);text-decoration:none;}
  .page .foot-nav a:hover{color:var(--ink);}

  /* soft armour — a small centred box */
  .page--center{gap:0;padding:4vh 0;}
  .page--center .armour-lede{font-family:var(--serif);font-size:19px;letter-spacing:.04em;margin:4vh 0 1vh;text-align:center;}
  .page--center .armour-note{font-family:var(--mono);font-size:10px;letter-spacing:.28em;color:var(--faint);margin-bottom:5vh;}
  .page--center .cta{margin-top:0;}

  /* archive — forum board (miladychan register, our palette) */
  .page--wide{max-width:100%;}
  .board{width:100%;margin:3vh 0 5vh;text-align:left;}
  .board-head{display:flex;align-items:center;gap:10px;padding:10px 0 14px;border-bottom:2px solid rgba(23,24,26,.35);flex-wrap:wrap;}
  .bbtn{font-family:var(--mono);font-size:10px;letter-spacing:.06em;color:var(--ink);border:1px solid rgba(23,24,26,.4);background:rgba(23,24,26,.04);padding:4px 9px;cursor:pointer;user-select:none;}
  .bbtn:hover{background:rgba(23,24,26,.12);}
  .bsearch{margin-left:auto;font-family:var(--mono);font-size:10px;border:1px solid rgba(23,24,26,.4);background:transparent;padding:5px 9px;color:var(--ink);width:130px;}
  .bsearch:focus-visible{outline:1px solid var(--seal);}
  .thread{display:flex;gap:14px;padding:16px 10px;border-bottom:1px solid rgba(23,24,26,.18);text-decoration:none;color:var(--ink);transition:background .2s ease;}
  .thread:nth-child(odd){background:rgba(23,24,26,.028);}
  .thread:hover{background:rgba(23,24,26,.07);}
  .tthumb{flex:0 0 auto;width:52px;height:52px;border:1px solid rgba(23,24,26,.3);
    background:repeating-linear-gradient(45deg, rgba(23,24,26,.12) 0 2px, transparent 2px 5px);}
  .tbody{flex:1;display:flex;flex-direction:column;gap:6px;}
  .tline{line-height:1.7;}
  .tpin{color:var(--seal);}
  .tsubject{font-family:var(--serif);font-weight:500;font-size:14px;color:var(--seal);}
  .tname{font-family:var(--mono);font-size:10px;letter-spacing:.06em;font-weight:700;}
  .tmeta{font-family:var(--mono);font-size:9px;color:var(--faint);letter-spacing:.06em;}
  .tsnippet{font-size:11.5px;line-height:1.8;opacity:.8;max-width:62ch;}
  .treplies{font-family:var(--mono);font-size:9px;color:var(--faint);letter-spacing:.08em;}

  /* the archive, deeper — imageboard chrome, silkroad register */
  .board-top{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;
    font-family:var(--mono);font-size:10px;letter-spacing:.05em;padding:6px 0;color:var(--ink);}
  .bnav a{color:var(--ink);text-decoration:underline;}
  .bnav a:hover{color:var(--seal);}
  .bnav b{color:var(--seal);}
  .blink-link{cursor:pointer;text-decoration:underline;user-select:none;}
  .blink-link:hover{color:var(--seal);}
  .board-banner{text-align:center;padding:16px 0 8px;}
  .banner-glyph{font-family:var(--brush);font-size:42px;line-height:1;color:var(--seal);opacity:.85;display:block;}
  .banner-title{font-family:var(--serif);font-weight:500;font-size:21px;letter-spacing:.14em;color:var(--seal);margin:10px 0 5px;}
  .banner-sub{font-family:var(--mono);font-size:9px;letter-spacing:.24em;color:var(--faint);}
  .bhr{border:0;border-top:1px solid rgba(23,24,26,.5);border-bottom:1px solid rgba(23,24,26,.14);height:3px;margin:10px 0;background:none;}
  .pform{width:100%;max-width:460px;margin:8px auto 6px;border-collapse:collapse;font-family:var(--mono);font-size:10px;}
  .pform td{border:1px solid rgba(23,24,26,.28);padding:5px 9px;}
  .pform td.lbl{background:rgba(23,24,26,.10);font-weight:700;width:76px;letter-spacing:.08em;}
  .pform input{width:100%;background:transparent;border:0;font:inherit;color:var(--faint);}
  .pform input::placeholder{color:var(--faint);}
  .locked{color:var(--faint);}
  .board-mode{text-align:center;font-family:var(--mono);font-size:9px;color:var(--seal);letter-spacing:.2em;margin:8px 0 2px;}
  .tname{color:#117743;}
  .ttrip{font-family:var(--mono);font-size:9px;color:#789922;letter-spacing:.04em;}
  .treply-btn{font-family:var(--mono);font-size:9px;color:var(--seal);letter-spacing:.04em;}
  .tomit{font-family:var(--mono);font-size:9px;color:var(--faint);letter-spacing:.06em;}
  @keyframes pblink{0%,49%{opacity:1;}50%,100%{opacity:.12;}}
  .tpin{animation:pblink 1.4s steps(1) infinite;}
  .board-stats{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;
    font-family:var(--mono);font-size:9px;color:var(--faint);letter-spacing:.08em;padding:4px 0;}
  .bpages b{color:var(--seal);}
  .bdead{opacity:.4;}
  .bpgp{text-align:center;font-family:var(--mono);font-size:8.5px;color:var(--faint);letter-spacing:.16em;margin-top:12px;}
  .opcell{padding:12px 4px 4px;text-align:left;}
  .rrow{margin:10px 0 10px 26px;text-align:left;}
  .rcell{display:inline-block;background:rgba(23,24,26,.07);border:1px solid rgba(23,24,26,.22);
    padding:10px 16px 8px;max-width:66ch;text-align:left;}
  .rhead{font-family:var(--mono);font-size:9px;color:var(--faint);letter-spacing:.06em;margin:0 0 7px;}
  .rname{font-family:var(--mono);color:#117743;font-weight:700;}
  .rtrip{color:#789922;font-family:var(--mono);}
  .rno{color:var(--faint);}
  .rlink{display:inline-block;font-family:var(--mono);font-size:9px;color:var(--seal);text-decoration:underline;margin-bottom:7px;}
  .rcell p{font-size:12px;line-height:1.95;letter-spacing:.02em;margin:0 0 .4em;max-width:62ch;text-align:left;}
  .rquote{color:#789922;}
  @media (max-width:640px){.rrow{margin-left:8px;}}
  @media (prefers-reduced-motion: reduce){.tpin{animation:none;}}

  /* a little life on the pages */
  @keyframes pagefloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
  .page h2{animation:pagefloat 7s ease-in-out infinite;}
  .page--center .armour-lede{animation:pagefloat 9s ease-in-out infinite;}
  .gothic{font-family:var(--gothic);}

  /* the pictures are the doors */
  .doors-row{display:flex;gap:7vw;flex-wrap:wrap;justify-content:center;align-items:flex-end;}
  .door{display:flex;flex-direction:column;align-items:center;gap:24px;text-decoration:none;color:var(--ink);}
  .door img{height:min(30vh,240px);image-rendering:pixelated;filter:grayscale(1);opacity:.85;transition:opacity .4s ease;}
  .door:hover img{opacity:1;}
  .door span{font-family:var(--mono);font-size:10px;letter-spacing:.3em;}
  .soon{font-family:var(--serif);font-size:13px;letter-spacing:.3em;color:var(--faint);}

  /* stations are pages now — opened by their pictures */
  #armour .screen{width:min(92vw,1180px);}
  #armour .page{max-width:1180px;}
  #armour,#practice,#archive,#works{
    display:none;position:fixed;inset:0;z-index:30;
    background:var(--mist);overflow-y:auto;overflow-x:hidden;
    padding:max(9vh,92px) 5vw 10vh;   /* clears the fixed header on short screens */
  }
  body[data-view="armour"] #armour,
  body[data-view="practice"] #practice,
  body[data-view="archive"] #archive{display:block;}
  body[data-view="works"] #works{display:block;}
  .station p{
    font-size:12px;letter-spacing:.12em;line-height:2.2;
    max-width:46ch;text-align:center;
  }
  .station .sub{font-family:var(--hand);font-size:15px;margin-top:3vh;opacity:.9;}
  .lot{font-size:11px;letter-spacing:.28em;color:var(--seal);opacity:.95;margin-top:6vh;}
  /* ── personal work ── */
  .works{margin:18vh auto 0;text-align:center;}
  .works h3{
    font-family:var(--serif);font-weight:500;
    font-size:clamp(17px,2.6vmin,22px);letter-spacing:.4em;text-indent:.4em;
    color:#17181A;margin-bottom:0;
  }
  .works .cta{padding:9px 22px;font-size:9px;}
  .work-row{display:flex;gap:20px;align-items:baseline;justify-content:space-between;
    padding:22px 0;border-bottom:1px solid rgba(23,24,26,.12);}
  .work-row:first-of-type{border-top:1px solid rgba(23,24,26,.12);}
  .work-name{font-size:14px;letter-spacing:.06em;}
  .work-note{font-family:var(--mono);font-size:10px;letter-spacing:.2em;
    color:#6B6771;white-space:nowrap;}
  /* ── soft armour shop ── */
  .soon-block{transition:opacity .8s ease;}
  .soon-block.gone{opacity:0;pointer-events:none;position:absolute;visibility:hidden;}
  .shop{display:none;width:100%;margin:5vh auto 9vh;}
  .shop.on{display:block;animation:colRise .8s cubic-bezier(.22,.7,.3,1);}
  .shop-grid{display:grid;grid-template-columns:minmax(0,1fr);max-width:625px;margin-inline:auto;gap:clamp(30px,4.2vw,68px);align-items:start;}
  @media(max-width:640px){.shop-grid{gap:clamp(14px,4vw,22px);}}
  .shop-card{text-align:center;width:100%;}
  .shop-box{aspect-ratio:1;border:1px solid rgba(23,24,26,.16);
    display:flex;align-items:center;justify-content:center;overflow:hidden;background:rgba(23,24,26,.02);}
  .shop-box img{width:100%;height:100%;object-fit:cover;display:block;}
  .shop-tba{font-family:var(--mono);font-size:10px;letter-spacing:.3em;color:#B9B6AE;}
  .shop-name{font-family:var(--mono);font-size:clamp(15px,1.4vw,18px);letter-spacing:.24em;color:#17181A;margin-top:12px;}
  .shop-price{font-family:var(--mono);font-size:clamp(13px,1.1vw,15px);letter-spacing:.2em;color:#6B6771;margin-top:4px;}
  .shop-add{font-family:var(--mono);font-size:9px;letter-spacing:.26em;margin-top:10px;
    background:none;border:1px solid rgba(23,24,26,.26);color:#17181A;padding:13px 18px;cursor:pointer;
    transition:background .3s,color .3s;}
  .shop-add:hover{background:#17181A;color:#FAFAF9;}
  .shop-add[disabled]{color:#B9B6AE;border-color:rgba(23,24,26,.12);cursor:default;background:none;}
  .bag-btn{display:none;position:fixed;top:max(9vh,92px);right:5vw;z-index:36;
    background:none;border:none;padding:0;cursor:pointer;width:64px;}
  body[data-view="armour"].shop-ready .bag-btn{display:block;}
  .bag-btn img{width:64px;height:auto;display:block;}
  .bag-fill{position:absolute;left:18%;right:22%;bottom:26%;display:flex;flex-wrap:wrap-reverse;
    gap:2px;justify-content:center;pointer-events:none;}
  .bag-fill i{width:7px;height:7px;background:#17181A;display:block;}
  .bag-count{position:absolute;top:-6px;right:-6px;font-family:var(--mono);font-size:9px;
    letter-spacing:.08em;color:#FAFAF9;background:#17181A;min-width:16px;height:16px;
    line-height:16px;text-align:center;border-radius:0;}
  .bag-btn.tossed{animation:bagToss .5s cubic-bezier(.22,.7,.3,1);}
  @keyframes bagToss{0%{transform:none}35%{transform:translateY(-6px) rotate(-4deg)}70%{transform:translateY(1px) rotate(2deg)}100%{transform:none}}
  .bag-lines{text-align:left;margin-top:6px;}
  .bag-line{display:flex;align-items:baseline;justify-content:space-between;gap:12px;
    padding:14px 0;border-bottom:1px solid rgba(23,24,26,.12);}
  .bag-line:first-child{border-top:1px solid rgba(23,24,26,.12);}
  .bag-name{font-size:12px;letter-spacing:.08em;}
  .bag-ctl{display:flex;align-items:baseline;gap:10px;font-family:var(--mono);font-size:11px;}
  .bag-ctl button{background:none;border:1px solid rgba(23,24,26,.22);color:#17181A;
    font-family:var(--mono);font-size:11px;width:22px;height:22px;line-height:1;cursor:pointer;}
  .bag-total{font-family:var(--mono);font-size:11px;letter-spacing:.2em;color:#17181A;
    text-align:right;margin-top:16px;}
  .bag-pay{display:inline-block;font-family:var(--mono);font-size:9px;letter-spacing:.22em;
    border:1px solid rgba(23,24,26,.26);padding:8px 14px;color:#17181A;text-decoration:none;cursor:pointer;background:none;}
  .bag-empty{font-size:11px;letter-spacing:.14em;color:#6B6771;margin-top:14px;}

  /* ── receipt rite · Japanese till / ticket printer ── */
  #receiptRite{position:fixed;inset:0;z-index:90;display:none;background:var(--mist);
    overflow-y:auto;padding:6vh 16px 12vh;}
  #receiptRite.on{display:block;}
  .rite-scene{position:relative;width:min(440px,92vw);margin:0 auto;}
  .rite-scene .plate{display:block;width:100%;height:auto;position:relative;z-index:3;
    user-select:none;-webkit-user-drag:none;pointer-events:none;transform-origin:50% 53%;}
  .printing .plate{animation:printerJitter 5.04s steps(1,end) forwards;}
  @keyframes printerJitter{
    0%,9%,19%,35%,48%,63%,76%,90%,100%{transform:translate(0,0)}
    4%,14%,28%,43%,57%,70%,84%{transform:translate(.45px,.7px)}
    6%,16%,31%,45%,59%,72%,86%{transform:translate(-.35px,0)}
  }
  .paper-window{position:absolute;left:24%;width:52%;top:52%;height:980%;overflow:hidden;z-index:1;
    pointer-events:none;}
  .paper-window::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;z-index:3;
    background:rgba(23,24,26,.48);opacity:0;pointer-events:none;}
  .printing .paper-window::before{animation:printHead 5.04s linear forwards;}
  @keyframes printHead{0%,2%{opacity:0}5%,91%{opacity:.72}100%{opacity:0}}
  .paper{transform:translateY(-101%);background:#fdfdfb;
    box-shadow:0 1px 0 rgba(23,24,26,.06),0 12px 24px rgba(23,24,26,.06);
    padding:22px 14px 9px;font-family:var(--mono);color:#292927;pointer-events:auto;cursor:pointer;
    position:relative;background-image:repeating-linear-gradient(rgba(23,24,26,.014) 0 26px,transparent 26px 27px);}
  .paper::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;
    background:repeating-linear-gradient(90deg,rgba(23,24,26,.1) 0 4px,transparent 4px 8px);}
  .printing .paper{animation:receiptFeed 5.04s cubic-bezier(.58,.02,.46,1) forwards;pointer-events:none;}
  .printed .paper{pointer-events:auto;}
  @keyframes receiptFeed{
    0%{transform:translateY(-101%)}
    8%{transform:translateY(-91%)} 12%{transform:translateY(-91%)}
    19%{transform:translateY(-84%)} 22%{transform:translateY(-84%)}
    35%{transform:translateY(-66%)} 39%{transform:translateY(-66%)}
    48%{transform:translateY(-55%)} 51%{transform:translateY(-55%)}
    64%{transform:translateY(-38%)} 68%{transform:translateY(-38%)}
    77%{transform:translateY(-22%)} 81%{transform:translateY(-22%)}
    89%{transform:translateY(-12%)} 93%{transform:translateY(-12%)}
    98%{transform:translateY(1.6%)} 100%{transform:translateY(0)}
  }
  .paper h5{font-size:13px;letter-spacing:.38em;text-align:center;font-weight:400;margin:0 0 2px;}
  .paper .r-sub{font-size:8px;letter-spacing:.2em;text-align:center;color:#858580;margin-bottom:13px;}
  .paper .r-meta{display:flex;justify-content:space-between;gap:10px;font-size:8px;letter-spacing:.12em;
    color:#777772;padding:1px 0;}
  .paper .r-rule{border-top:1px solid rgba(23,24,26,.26);margin:9px 0;}
  .paper .r-rule.r-dash{border-top-style:dashed;border-top-color:rgba(23,24,26,.34);}
  .paper .r-line{display:flex;justify-content:space-between;gap:9px;font-size:10px;letter-spacing:.05em;padding:1px 0;}
  .paper .r-line span:last-child{white-space:nowrap;}
  .paper .r-price{font-size:9px;color:#777772;margin-bottom:3px;}
  .paper .r-subtotal{display:flex;justify-content:space-between;gap:10px;font-size:8px;letter-spacing:.08em;
    color:#777772;padding:1px 0;}
  .paper .r-total{display:flex;justify-content:space-between;gap:10px;font-size:12px;letter-spacing:.13em;padding-top:4px;}
  .paper .r-mto{font-size:7px;letter-spacing:.09em;text-align:right;color:#92928c;margin-top:4px;}
  .paper .r-cute{text-align:center;font-size:9px;letter-spacing:.06em;color:#858580;margin:12px 0 3px;}
  .paper .r-mascot{text-align:center;font-size:9px;color:#aaa8a1;white-space:pre;line-height:1.08;margin:2px 0 8px;}
  .paper .r-proof{margin:9px 0 0;padding:8px 6px 7px;border:1px dashed rgba(23,24,26,.39);}
  .paper .r-proof-title{font-size:7px;letter-spacing:.12em;text-align:center;color:#565653;margin-bottom:3px;}
  .paper .r-proof-alg{font-size:6.5px;letter-spacing:.16em;text-align:center;color:#9b9993;margin-bottom:6px;}
  .paper .r-proof-code{font-size:9px;letter-spacing:.16em;text-align:center;color:#292927;line-height:1.45;white-space:nowrap;}
  .paper .r-proof-grid{text-align:center;color:#484844;margin:5px 0 4px;font-size:9px;line-height:1.02;
    letter-spacing:.18em;white-space:pre;}
  .paper .r-issued{font-size:8px;letter-spacing:.16em;text-align:center;color:#5e5e59;opacity:.18;transition:opacity .28s;}
  .paper .r-issued.on{opacity:1;}
  .paper .r-issued.flash{animation:thermalStamp .42s ease-out;}
  @keyframes thermalStamp{0%{color:#111;text-shadow:0 0 2px rgba(23,24,26,.55)}100%{color:#5e5e59;text-shadow:none}}
  .paper .r-state{font-size:8px;letter-spacing:.13em;text-align:center;color:#74746f;margin-top:9px;}
  .paper .r-note{font-size:7px;letter-spacing:.12em;text-align:center;color:#aaa8a1;margin-top:4px;}
  .paper .r-seal{font-size:7.5px;letter-spacing:.18em;text-align:center;color:#b5b2ab;margin-top:11px;line-height:1.55;}
  .paper .r-message{font-size:7.5px;letter-spacing:.12em;text-align:center;color:#999790;margin-top:7px;}
  .paper .r-thanks-bottom{font-size:7px;letter-spacing:.18em;text-align:center;color:#c0bdb6;margin-top:4px;}
  .paper .r-stamp{writing-mode:vertical-rl;position:absolute;top:62px;right:3px;font-size:7px;
    letter-spacing:.34em;color:#a3a19b;}
  .paper .r-tap{font-size:8px;letter-spacing:.22em;text-align:center;color:#c3c0b9;margin-top:8px;
    opacity:0;transition:opacity .5s;}
  .printed .paper .r-tap{opacity:1;}
  .paper .r-tear{height:12px;margin-top:10px;
    background:repeating-linear-gradient(135deg,transparent 0 6px,rgba(23,24,26,.16) 6px 7px);}
  .rite-beep{position:absolute;left:50%;top:53%;transform:translate(-50%,-50%);z-index:5;
    font-family:var(--mono);font-size:9px;letter-spacing:.12em;color:#17181A;background:#fdfdfb;
    border:1px solid rgba(23,24,26,.28);padding:6px 10px;opacity:0;pointer-events:none;white-space:nowrap;
    transition:opacity .12s;box-shadow:2px 2px 0 rgba(23,24,26,.08);}
  .rite-beep.on{opacity:1;}
  .rite-beep.pi{font-size:14px;letter-spacing:.04em;animation:posPi .16s steps(2,end) 1;}
  @keyframes posPi{0%{background:#17181A;color:#fdfdfb}100%{background:#fdfdfb;color:#17181A}}
  .rite-dismiss{display:block;margin:5vh auto 0;font-family:var(--mono);font-size:9px;
    letter-spacing:.26em;color:#6B6771;background:none;border:1px solid rgba(23,24,26,.2);
    padding:10px 22px;cursor:pointer;opacity:0;transition:opacity .6s;}
  .printed .rite-dismiss{opacity:1;}
  .bag-checkout{display:block;margin:18px auto 0;font-family:var(--mono);font-size:9px;
    letter-spacing:.24em;color:#FAFAF9;background:#17181A;border:1px solid #17181A;
    padding:11px 24px;cursor:pointer;}
  .bag-checkout.working{opacity:.7;cursor:default;animation:coPulse 1.2s ease-in-out infinite;}
  @keyframes coPulse{0%,100%{opacity:.7}50%{opacity:.4}}
  .bag-actions{display:flex;flex-direction:column;gap:10px;margin-top:18px;align-items:center;}
  .bag-actions .bag-checkout{margin:0;}
  .bag-keep{font-family:var(--mono);font-size:9px;letter-spacing:.22em;color:#6B6771;
    background:none;border:1px solid rgba(23,24,26,.2);padding:10px 22px;cursor:pointer;
    transition:border-color .3s,color .3s;}
  .bag-keep:hover{border-color:rgba(23,24,26,.5);color:#17181A;}
  .bag-form{margin-top:20px;text-align:left;}
  .bag-form-h{font-family:var(--mono);font-size:9px;letter-spacing:.28em;color:#6B6771;margin:0 0 10px;}
  .bag-form input,.bag-form select{width:100%;font-family:var(--mono);font-size:11px;
    letter-spacing:.06em;color:#17181A;background:rgba(23,24,26,.02);
    border:1px solid rgba(23,24,26,.2);padding:9px 10px;margin-bottom:8px;box-sizing:border-box;}
  .bag-form input:focus,.bag-form select:focus{outline:none;border-color:rgba(23,24,26,.5);}
  .bag-form-row{display:flex;gap:8px;}
  .bag-form-row #fSuburb{flex:2;}
  .bag-form-row #fState{flex:1;}
  .bag-form-row #fPost{flex:1;}
  .bag-form-note{font-family:var(--mono);font-size:9px;letter-spacing:.1em;color:#993536;min-height:12px;margin:4px 0 0;}
  #riteSave{position:fixed;inset:0;z-index:95;display:none;background:var(--mist);
    overflow-y:auto;padding:6vh 16px 8vh;}
  #riteSave.on{display:flex;flex-direction:column;align-items:center;}
  .save-inner{width:min(340px,90vw);}
  .save-paper .paper,.save-paper > div{transform:none!important;}
  .save-actions{display:flex;gap:12px;justify-content:center;margin-top:24px;}
  .save-dl{font-family:var(--mono);font-size:9px;letter-spacing:.24em;color:#FAFAF9;
    background:#17181A;border:1px solid #17181A;padding:11px 22px;cursor:pointer;}
  .save-track{font-family:var(--mono);font-size:9px;letter-spacing:.18em;color:#17181A;text-decoration:none;
    background:none;border:1px solid #17181A;padding:11px 18px;cursor:pointer;display:inline-flex;align-items:center;}
  .save-track[hidden]{display:none;}
  .save-close{font-family:var(--mono);font-size:9px;letter-spacing:.24em;color:#6B6771;
    background:none;border:1px solid rgba(23,24,26,.2);padding:11px 22px;cursor:pointer;}
  .save-key{width:100%;margin-top:18px;text-align:left;}
  .save-key-h{font-family:var(--mono);font-size:8px;letter-spacing:.2em;color:#17181A;margin:0 0 4px;}
  .save-key-sub{font-family:var(--mono);font-size:7px;letter-spacing:.05em;color:#858580;line-height:1.5;margin:0 0 7px;}
  .save-key-row{display:flex;gap:7px;align-items:stretch;}
  .save-key-row code{flex:1;font-family:var(--mono);font-size:9px;letter-spacing:.02em;color:#17181A;
    background:rgba(23,24,26,.025);border:1px solid rgba(23,24,26,.18);padding:9px;word-break:break-all;}
  .save-key-copy{font-family:var(--mono);font-size:8px;letter-spacing:.14em;color:#FAFAF9;background:#17181A;
    border:1px solid #17181A;padding:0 11px;cursor:pointer;white-space:nowrap;}

  /* ── works page: collections ── */
  .collections{max-width:900px;margin:2vh auto 0;text-align:left;}
  .col-row{display:flex;justify-content:space-between;align-items:baseline;gap:20px;
    width:100%;background:none;border:none;border-bottom:1px solid rgba(23,24,26,.12);
    padding:26px 0;cursor:pointer;text-align:left;}
  .col-row:first-of-type{border-top:1px solid rgba(23,24,26,.12);}
  .col-name{font-size:15px;letter-spacing:.06em;color:#17181A;}
  .col-side{display:flex;align-items:baseline;gap:16px;}
  .col-note{font-family:var(--mono);font-size:10px;letter-spacing:.2em;color:#6B6771;white-space:nowrap;}
  .col-mark{font-family:var(--mono);font-size:12px;color:#6B6771;width:12px;text-align:center;}
  .col-body{display:none;padding:4px 0 34px;border-bottom:1px solid rgba(23,24,26,.12);}
  .col-open .col-body{display:block;animation:colRise .5s cubic-bezier(.22,.7,.3,1);}
  @keyframes colRise{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:none;}}
  .work-project-hero{margin:28px 0 0;border:1px solid #000;overflow:hidden;}
  .work-project-hero .work-zoom{aspect-ratio:16/9;}
  .work-project-hero img{width:100%;height:100%;object-fit:cover;display:block;}
  .work-zoom{display:block;width:100%;height:100%;padding:0;border:0;background:transparent;
    color:inherit;cursor:zoom-in;text-align:inherit;}
  .work-zoom:focus-visible{outline:1px solid var(--ink);outline-offset:4px;}
  .work-project-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px;
    padding:30px 0 32px;border-bottom:1px solid rgba(23,24,26,.12);}
  .work-project-details h4,.work-film figcaption{font-family:var(--mono);font-size:9px;
    font-weight:400;letter-spacing:.24em;color:var(--faint);}
  .work-project-details ul{list-style:none;margin-top:13px;}
  .work-project-details li{font-family:var(--hand);font-size:13px;line-height:1.75;
    letter-spacing:.035em;color:var(--ink);}
  .work-film{margin:32px 0 6px;}
  .work-film video{display:block;width:100%;aspect-ratio:16/9;background:#0b0c0e;
    border:1px solid #000;object-fit:contain;}
  .work-film figcaption{margin-top:11px;}
  .work-prose{padding:30px 0 8px;border-top:1px solid rgba(23,24,26,.12);}
  .work-prose p{font-family:var(--hand);font-size:13px;line-height:1.82;letter-spacing:.035em;color:var(--ink);margin:0 0 16px;}
  .work-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:26px;margin-top:22px;}
  .work-card{text-align:left;}
  .work-ph{aspect-ratio:4/5;border:1px solid #000;
    display:flex;align-items:center;justify-content:center;overflow:hidden;}
  .work-ph img{width:100%;height:100%;object-fit:cover;display:block;}
  .work-ph .ph-soon{font-family:var(--mono);font-size:10px;letter-spacing:.28em;color:#6B6771;}
  .work-card h4{font-size:14px;letter-spacing:.06em;font-weight:400;margin:14px 0 4px;}
  .work-card .work-note{white-space:normal;}
  #workLight{position:fixed;inset:0;background:rgba(250,250,249,.96);
    display:none;align-items:center;justify-content:center;z-index:99;cursor:zoom-out;}
  #workLight.on{display:flex;}
  #workLight img{max-width:92vw;max-height:88vh;border:1px solid #000;}
  @media(max-width:640px){
    .collections{width:100%;}
    .col-row{align-items:flex-start;padding:22px 0;}
    .col-side{align-items:flex-end;flex-direction:column;gap:8px;}
    .col-note{font-size:8px;white-space:normal;text-align:right;}
    .work-project-details{grid-template-columns:1fr;gap:24px;padding:24px 0 26px;}
    .work-grid{grid-template-columns:1fr;gap:24px;}
    .work-project-hero{margin-top:22px;}
    .work-film{margin-top:26px;}
  }
  .garment{
    width:min(46vmin,340px);display:block;margin:5vh auto 0;
    filter:grayscale(1);mix-blend-mode:multiply;
  }

  .signal{margin-top:6vh;display:flex;gap:0;}
  .signal input{
    background:transparent;border:1px solid var(--ink);border-right:none;
    font:inherit;font-size:11px;letter-spacing:.12em;
    padding:10px 14px;width:min(52vw,260px);color:var(--ink);
  }
  .signal input::placeholder{color:var(--faint);}
  .signal button{
    background:var(--ink);color:var(--mist);border:1px solid var(--ink);
    font:inherit;font-size:10px;letter-spacing:.22em;padding:10px 18px;cursor:pointer;
  }
  .signal button:hover{background:var(--seal);border-color:var(--seal);}
  .signal input:focus-visible,.signal button:focus-visible{outline:1px solid var(--seal);outline-offset:3px;}

  .wall{
    position:relative;max-width:840px;
    font-size:10.5px;line-height:2.15;letter-spacing:.06em;
    text-align:justify;opacity:.85;
    padding:2vh 0;
  }
  .wall-mid{display:flex;gap:30px;align-items:stretch;margin:26px 0;}
  .wall-col{flex:1;text-align:justify;}
  .wall-window{flex:0 0 auto;width:min(44vw,300px);display:flex;align-items:center;}
  .imgph{
    background:var(--ink);color:var(--faint);width:100%;
    aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;
    font-size:9px;letter-spacing:.3em;
  }
  .tximg{width:100%;display:block;filter:grayscale(1) contrast(1.05);}

  #floor{
    display:flex;flex-direction:column;
    align-items:center;justify-content:center;gap:6vh;
    padding:2vh 8vw 16vh;
  }
  #floor .okaeri{
    font-family:var(--hand);
    font-size:clamp(20px,3.6vmin,30px);letter-spacing:.2em;
  }
  #floor .rtf{font-size:10px;letter-spacing:.34em;color:var(--faint);}
  #floor .seal{
    font-family:var(--brush);color:var(--seal);
    border:1px solid var(--seal);padding:8px 10px;
    font-size:15px;writing-mode:vertical-rl;letter-spacing:.3em;
    opacity:.75;
  }
  #floor .contact{
    font-size:9px;letter-spacing:.26em;color:var(--faint);
  }
  .floor-links{display:flex;gap:30px;justify-content:center;}
  .floor-link{font-family:var(--mono);font-size:9px;letter-spacing:.26em;text-decoration:none;
    color:var(--faint);background:none;border:none;cursor:pointer;padding:0;
    transition:color .3s ease;}
  .floor-link:hover{color:var(--ink);}
  #floorModal,#bagModal{position:fixed;inset:0;z-index:80;display:none;
    align-items:center;justify-content:center;background:rgba(250,250,249,.9);}
  #floorModal.on,#bagModal.on{display:flex;}
  #bagModal .modal-card,#floorModal .modal-card{max-height:82vh;overflow-y:auto;}
  .modal-card{width:min(86vw,420px);background:var(--mist);
    border:1px solid rgba(23,24,26,.22);padding:40px 34px 34px;
    text-align:center;position:relative;}
  .modal-card h4{font-family:var(--serif);font-weight:500;font-size:14px;
    letter-spacing:.4em;text-indent:.4em;margin:0 0 24px;}
  .modal-card p{font-size:11px;letter-spacing:.12em;line-height:2.1;
    color:#3A3B3E;margin:0 0 12px;}
  .modal-card a{color:var(--ink);}
  .modal-seal{font-family:var(--hand);opacity:.75;margin-top:18px!important;}
  .modal-x{position:absolute;top:10px;right:14px;background:none;border:none;
    font-family:var(--mono);font-size:12px;color:var(--faint);cursor:pointer;}

  .ghost-mono{font-family:var(--mono);font-size:32vmin;letter-spacing:-0.05em;}

  /* the registry — three tiers, dead space is doctrine */
  .registry{display:flex;flex-direction:column;align-items:center;gap:8vh;margin:8vh 0 5vh;}
  .reg-title{font-size:10px;letter-spacing:.32em;color:var(--faint);}
  .crowd{display:flex;flex-direction:column;align-items:center;gap:8vh;max-width:840px;}
  .tier{display:flex;flex-direction:column;align-items:center;gap:3.6vh;}
  .tier-label{font-size:10px;letter-spacing:.24em;color:var(--faint);display:flex;align-items:baseline;gap:16px;}
  .tier-label .gothic{font-size:16px;color:var(--ink);opacity:.8;}
  .tier-label .tier-ja{font-family:var(--pixel);}
  .tier-row{display:flex;flex-wrap:wrap;gap:3vh 2.8vw;justify-content:center;}
  .bust{display:flex;flex-direction:column;align-items:center;gap:12px;}
  .bust span{font-size:9px;letter-spacing:.2em;color:var(--ink);}
  .reg-legend{font-size:9px;letter-spacing:.24em;color:var(--faint);text-align:center;line-height:2.4;}
  .counter{font-size:9px;letter-spacing:.26em;color:var(--faint);}
  .badge-row a{display:inline-block;line-height:0;}
  .badge-row img{image-rendering:pixelated;}

  /* the placeable layer — you position, the engine obeys */
  .decor{
    position:absolute;z-index:6;
    font-family:var(--pixel);font-size:14px;color:var(--ink);opacity:.5;
  }
  img.decor{opacity:.9;filter:grayscale(1);}

  @media (max-width:640px){
    .wall{font-size:9.5px;}
    .wall-mid{flex-direction:column;align-items:center;gap:22px;}
  }
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    .mantra,.hint,.formNav{transition:none;}
    .screen{opacity:1;transform:none;transition:none;}
  }

  .decor{position:absolute;z-index:6;}
  .decor--text{font-family:var(--serif);color:var(--ink);line-height:1.3;white-space:nowrap;}
  img.decor{filter:grayscale(1);}
  @keyframes ed-float{0%,100%{transform:translateY(0) rotate(var(--r,0deg));}50%{transform:translateY(-10px) rotate(var(--r,0deg));}}
  @keyframes ed-fade{0%,100%{opacity:.35;}50%{opacity:1;}}
  @keyframes ed-drift{0%{transform:translate(0,0);}33%{transform:translate(8px,-6px);}66%{transform:translate(-6px,4px);}100%{transform:translate(0,0);}}
  @keyframes ed-pulse{0%,100%{transform:scale(1);}50%{transform:scale(1.06);}}
  .anim-float{animation:ed-float 6s ease-in-out infinite;}
  .anim-fade{animation:ed-fade 5s ease-in-out infinite;}
  .anim-drift{animation:ed-drift 12s ease-in-out infinite;}
  .anim-pulse{animation:ed-pulse 4s ease-in-out infinite;}

  /* archive — post reader */
  .thread-id{margin-left:auto;font-family:var(--mono);font-size:10px;color:var(--faint);letter-spacing:.1em;}
  .post{text-align:left;padding:14px 4px 6px;}
  .post-op{display:flex;gap:16px;margin-bottom:20px;}
  .tthumb.big{width:78px;height:100px;flex:0 0 auto;}
  .post-head{flex:1;}
  .post-subject{font-family:var(--serif);font-weight:500;font-size:17px;color:var(--seal);margin-bottom:6px;}
  .post-meta{font-family:var(--mono);font-size:9px;color:var(--faint);letter-spacing:.08em;margin-bottom:12px;}
  .post-abstract{font-size:11.5px;line-height:1.8;opacity:.85;max-width:60ch;}
  .post-abstract b{font-family:var(--mono);font-size:9px;letter-spacing:.16em;color:var(--seal);}
  .post-body{border-top:1px solid rgba(23,24,26,.18);padding-top:18px;}
  .post-body p{font-size:12.5px;line-height:2;letter-spacing:.02em;max-width:62ch;margin:0 0 1.5em;text-align:left;}
  #bBack2{display:inline-block;margin-top:10px;}

  /* the breath gate */
  .breath{display:flex;flex-direction:column;align-items:center;gap:14px;margin-top:2vh;
    opacity:0;pointer-events:none;transition:opacity 1.4s ease;}
  body.breathing .breath{opacity:1;pointer-events:auto;}
  .breath-word{font-family:var(--serif);font-weight:500;font-size:15px;letter-spacing:.5em;text-indent:.5em;}
  .breath-track{width:min(46vw,260px);height:1px;background:rgba(23,24,26,.16);}
  .breath-fill{height:100%;width:0;background:var(--seal);}
  .breath-count{font-family:var(--mono);font-size:9px;letter-spacing:.3em;color:var(--faint);}
  .breath-skip{background:none;border:0;font:inherit;font-family:var(--mono);font-size:9px;
    letter-spacing:.24em;color:var(--faint);cursor:pointer;margin-top:4px;}
  .breath-skip:hover{color:var(--seal);}
  body:not(.ritual-done) .below{opacity:0 !important;pointer-events:none !important;}
  body:not(.ritual-done) .hint{opacity:0 !important;}

  /* ── gentle breeze: one soft gust ~ every minute ── */
  @keyframes breeze{
    0%,80%,100%{transform:translate3d(0,0,0) rotate(0deg);}
    86%{transform:translate3d(3px,0,0) rotate(.35deg);}
    92%{transform:translate3d(-1.6px,0,0) rotate(-.18deg);}
    97%{transform:translate3d(.6px,0,0) rotate(.06deg);}
  }
  @keyframes breezeGhost{
    0%,80%,100%{transform:translate(-50%,-50%) rotate(0deg);}
    86%{transform:translate(calc(-50% + 5px),-50%) rotate(.4deg);}
    92%{transform:translate(calc(-50% - 2.5px),-50%) rotate(-.2deg);}
  }
  @keyframes logolife{
    0%,100%{transform:translateY(0);opacity:.86;}
    50%{transform:translateY(-1px);opacity:1;}
  }
  @media (prefers-reduced-motion: reduce){
    #figureZone,.below,.mantra,.page,.ghost,.brand-mark,
    body.gust *{animation:none !important;}
  }

  /* ── faded digital metal: worn plate buttons ───────────── */
  .enter, .page .cta, .signal button, .bbtn{
    position:relative;
    color:#54505A;
    border:1px solid rgba(23,24,26,.30);
    background:
      repeating-linear-gradient(90deg, rgba(23,24,26,.016) 0 1px, transparent 1px 5px),
      repeating-linear-gradient(180deg, rgba(255,255,255,.34) 0 1px, rgba(23,24,26,.012) 1px 3px),
      linear-gradient(177deg,#F3F2EF 0%,#E6E4E1 34%,#DAD8D6 52%,#E9E7E4 72%,#F2F1EE 100%);
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.9),
      inset 1px 0 0 rgba(255,255,255,.45),
      inset -1px 0 0 rgba(23,24,26,.06),
      inset 0 -1px 0 rgba(23,24,26,.16),
      0 1px 0 rgba(23,24,26,.05);
    text-shadow:0 1px 0 rgba(255,255,255,.75);
    transition:color .3s ease, box-shadow .25s ease, filter .3s ease, border-color .3s ease;
  }
  /* the wear layer — dither + grain, printed onto the plate */
  .enter::after, .page .cta::after, .signal button::after, .bbtn::after{
    content:'';position:absolute;inset:0;pointer-events:none;
    mix-blend-mode:multiply;opacity:.3;
    background-image:
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='w'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='3'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23w)' opacity='0.42'/%3E%3C/svg%3E"),
      repeating-linear-gradient(180deg, rgba(23,24,26,.05) 0 1px, transparent 1px 2px);
  }
  .enter:hover, .page .cta:hover, .signal button:hover, .bbtn:hover{
    color:var(--seal);
    border-color:rgba(23,24,26,.5);
    filter:brightness(1.04) saturate(1.05);
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.95),
      inset 1px 0 0 rgba(255,255,255,.5),
      inset -1px 0 0 rgba(23,24,26,.07),
      inset 0 -1px 0 rgba(23,24,26,.18),
      0 1px 0 rgba(23,24,26,.06);
  }
  /* pressed — the plate physically sinks */
  .enter:active, .page .cta:active, .signal button:active, .bbtn:active{
    color:var(--seal);
    box-shadow:
      inset 0 2px 3px rgba(23,24,26,.22),
      inset 0 -1px 0 rgba(255,255,255,.5);
    transform:translateY(1px);
    transition:none;
  }
  .signal button{background-blend-mode:normal;}
  @media (prefers-reduced-motion: reduce){
    .enter:active,.page .cta:active,.signal button:active,.bbtn:active{transform:none;}
  }

  /* ── mobile: give the threshold room to breathe ────────── */
  @media (max-width:640px){
    #figureZone{width:min(56vmin,300px);height:min(56vmin,300px);}
    .below{gap:16px;margin-top:2vh;}
    .breath{gap:11px;}
    .hint{margin-top:3vh;}
    .enter,.page .cta{padding:11px 26px;}
    .page .cta{margin-top:4vh;}
    .breath-word{font-size:14px;}
  }
  /* very short screens — stop the column from stacking up */
  @media (max-height:720px){
    #figureZone{width:min(46vmin,260px);height:min(46vmin,260px);}
    .below{margin-top:1.5vh;gap:14px;}
    .hint{margin-top:2vh;}
  }

  /* ── one state at a time: nothing hidden still holds space ── */
  .breath{display:none;}
  body.breathing .breath{display:flex;opacity:1;pointer-events:auto;}
  .below{display:none;}
  body.ritual-done .below{display:flex;}
  .hint{display:none;}
  body.ritual-done.incarnated:not(.nav-learned) .hint{display:block;}

  /* ── the threshold clears the fixed header on every screen ── */
  #threshold{
    padding:84px 18px 48px;
    justify-content:center;
  }
  @media (max-width:640px){
    #threshold{padding:76px 14px 40px;}
    #figureZone{width:min(52vmin,270px);height:min(52vmin,270px);}
  }
  @media (max-height:760px){
    #threshold{padding-top:70px;}
    #figureZone{width:min(42vmin,230px);height:min(42vmin,230px);}
  }

  /* ── the ethos: the scroll below the threshold ─────────── */
  #ethos{
    position:relative;
    display:flex;align-items:center;justify-content:center;
    padding:22vh 20px 2vh;
  }
  #ethos .screen{width:min(92vw,660px);}
  .ethos-body{width:100%;text-align:center;}
  .ethos-body p{
    font-family:var(--serif);
    font-size:clamp(13px,1.55vmin,15.5px);
    line-height:2.5;letter-spacing:.045em;
    color:#3A3740;margin:0 0 2.4em;
    max-width:56ch;margin-left:auto;margin-right:auto;
  }
  .ethos-label{
    font-family:var(--mono)!important;font-size:9.5px!important;
    letter-spacing:.42em;text-indent:.42em;color:var(--seal)!important;
    line-height:1!important;margin-bottom:4.5em!important;
  }
  .ethos-open{
    font-size:clamp(19px,3vmin,27px)!important;
    line-height:1.85!important;letter-spacing:.18em!important;
    color:var(--ink)!important;margin-bottom:1.6em!important;
  }
  .ethos-close{font-style:italic;color:var(--ink)!important;margin-bottom:1.6em!important;}
  .ethos-seal{
    font-size:clamp(12px,1.5vmin,14px)!important;
    letter-spacing:.24em!important;color:var(--seal)!important;
    margin-bottom:0!important;
  }
  .ethos-rule{
    width:64px;height:1px;margin:0 auto 3.4em;
    background:rgba(23,24,26,.22);
  }
  #ethos .ghost{opacity:.05;}

  /* the quiet cue that there is something below */
  .scroll-cue{
    position:absolute;left:50%;bottom:26px;transform:translateX(-50%);
    font-family:var(--mono);font-size:9px;letter-spacing:.3em;
    color:var(--faint);text-decoration:none;
    display:none;animation:cueDrift 3.6s ease-in-out infinite;
  }
  body.ritual-done .scroll-cue{display:block;}
  .scroll-cue:hover{color:var(--seal);}
  @keyframes cueDrift{
    0%,100%{transform:translateX(-50%) translateY(0);opacity:.55;}
    50%{transform:translateX(-50%) translateY(4px);opacity:1;}
  }
  @media (prefers-reduced-motion: reduce){ .scroll-cue{animation:none;} }
  @media (max-width:640px){
    #ethos{padding:11vh 16px 10vh;}
    .ethos-body p{line-height:2.3;}
  }

  /* ── a station is a room, not an overlay: the page behind is sealed ── */
  body[data-view]{overflow:hidden;}
  body[data-view] #ethos,
  body[data-view] #floor{visibility:hidden;}
  .ethos-rule--end{margin-bottom:0;}

  /* ── weight & legibility: black ink, plate-matched ────── */
  .station p{font-size:13px!important;letter-spacing:.075em!important;
    line-height:2.15!important;font-weight:500;color:#1E1C22;}
  .station .sub{font-size:16px!important;opacity:1!important;color:var(--ink);}
  .lot{font-weight:700!important;letter-spacing:.22em!important;
    font-size:11.5px!important;color:var(--ink)!important;opacity:1!important;}
  .armour-lede{font-weight:500;color:#1E1C22;}
  .formName,.below .formName{font-weight:600!important;}
  .hint{color:#4B4854!important;font-weight:600;letter-spacing:.26em;}
  .breath-word{font-weight:600!important;}
  .breath-count,.breath-skip{color:#4B4854!important;font-weight:600;}
  .ethos-body p{color:#1B1920!important;font-weight:500;letter-spacing:.035em!important;}
  .ethos-label{font-weight:700!important;color:var(--ink)!important;}
  .ethos-open{font-weight:600!important;}
  .ethos-close{color:var(--ink)!important;font-weight:600;}
  .soon{font-weight:600;color:#4B4854;}
  .enter,.page .cta,.signal button,.bbtn{
    color:#232028!important;font-weight:600;
  }
  .enter:hover,.page .cta:hover,.signal button:hover,.bbtn:hover{
    color:#000!important;
  }
  .screen-bar .bar-x{font-weight:600;}

  /* ── debris: what the forms shed ──────────────────────── */
  #debris{position:fixed;inset:0;width:100vw;height:100vh;
    pointer-events:none;z-index:2;}

  /* ── THE ARCHIVE, as a blog ─────────────────────────────── */
  #archive .lede{margin-bottom:6vh;}
  .blog-list{
    --archive-mono:"SFMono-Regular","Cascadia Mono","Roboto Mono","Courier New",monospace;
    display:block;text-align:left;max-width:760px;margin:0 auto;
    border-top:1px solid rgba(23,24,26,.18);
  }
  .archive-item{border-bottom:1px solid rgba(23,24,26,.18);}
  .archive-item > summary{list-style:none;}
  .archive-item > summary::-webkit-details-marker{display:none;}
  .entry{
    display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:22px;align-items:start;
    padding:32px 0;text-decoration:none;color:inherit;
    transition:opacity .25s ease;width:100%;cursor:pointer;text-align:left;
  }
  .entry:hover{opacity:.62;}
  .entry:focus-visible{outline:1px solid var(--ink);outline-offset:7px;}
  .entry-thumb{width:118px;height:88px;overflow:hidden;background:rgba(23,24,26,.05);}
  .entry-thumb img{
    width:100%;height:100%;object-fit:cover;
    filter:saturate(.7) contrast(.98);transition:filter .3s ease;
  }
  .archive-item[open] .entry-thumb img{filter:saturate(.9) contrast(1);}
  .entry-text{display:flex;flex-direction:column;gap:9px;min-width:0;}
  .entry-tag{
    font-family:var(--archive-mono);font-size:9px;letter-spacing:.22em;
    color:#4B4854;text-transform:uppercase;
  }
  .entry-title{
    font-family:var(--archive-mono);font-weight:700;
    font-size:clamp(18px,2.6vmin,24px);line-height:1.3;
    letter-spacing:-.025em;color:var(--ink);
  }
  .entry-dek{
    font-family:var(--archive-mono);font-size:11.5px;line-height:1.65;
    color:#3C3945;font-weight:400;
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  }
  .entry-date{font-family:var(--archive-mono);font-size:9.5px;letter-spacing:.12em;color:#615E69;}
  .entry-toggle{
    width:22px;height:22px;position:relative;margin-top:2px;color:var(--ink);
  }
  .entry-toggle::before,.entry-toggle::after{
    content:"";position:absolute;left:4px;right:4px;top:10px;height:1px;background:currentColor;
    transition:transform .25s ease;
  }
  .entry-toggle::after{transform:rotate(90deg);}
  .archive-item[open] .entry-toggle::after{transform:rotate(0);}
  .blog-foot{
    font-family:var(--archive-mono)!important;font-size:9.5px!important;
    letter-spacing:.2em!important;color:#615E69!important;
    margin-top:6vh!important;text-align:center!important;
  }

  /* each transmission unfolds into its own editorial reading column */
  .tx{
    max-width:680px;margin:0 auto;padding:28px 0 60px;text-align:left;
    animation:archiveReveal .42s cubic-bezier(.2,.65,.25,1) both;
  }
  @keyframes archiveReveal{
    from{opacity:0;transform:translateY(-8px);}
    to{opacity:1;transform:translateY(0);}
  }
  .tx-tag{
    font-family:var(--archive-mono)!important;font-size:9px!important;
    letter-spacing:.22em!important;color:#4B4854!important;
    text-align:left!important;margin:0 0 14px!important;
  }
  .tx-title{
    font-family:var(--archive-mono);font-weight:800;
    font-size:clamp(30px,5.4vmin,48px);line-height:1.08;letter-spacing:-.055em;
    margin:0 0 22px;color:var(--ink);text-align:left;
  }
  .tx-dek{
    font-family:var(--archive-mono)!important;font-size:13px!important;
    line-height:1.75!important;color:#3C3945!important;font-weight:600;
    text-align:left!important;margin:0 0 18px!important;max-width:none!important;
  }
  .tx-date{
    font-family:var(--archive-mono)!important;font-size:10px!important;
    letter-spacing:.12em!important;color:#615E69!important;
    text-align:left!important;margin:0 0 5vh!important;
    padding-bottom:4vh;border-bottom:1px solid rgba(23,24,26,.14);
  }
  .tx-hero{margin:0 0 4.5vh;}
  .tx-hero img{width:100%;height:auto;display:block;filter:saturate(.76) contrast(.98);}
  .tx-body p{
    font-family:var(--archive-mono)!important;font-size:clamp(13px,1.8vmin,15px)!important;
    line-height:1.95!important;letter-spacing:-.012em!important;
    color:#1B1920!important;font-weight:400;
    text-align:left!important;max-width:none!important;margin:0 0 1.9em!important;
  }
  .tx-section{
    font-family:var(--archive-mono);font-size:clamp(17px,2.6vmin,23px);
    line-height:1.25;letter-spacing:-.03em;font-weight:800;
    color:var(--ink);margin:3.3em 0 1.1em;
  }
  .tx-fig{margin:3.4em 0;}
  .tx-fig img{width:100%;height:auto;display:block;filter:saturate(.76) contrast(.98);}
  .tx-fig figcaption{
    font-family:var(--archive-mono);font-size:9px;letter-spacing:.16em;
    color:#615E69;margin-top:10px;text-align:left;
  }
  .archive-source{margin:4.5em 0 0!important;text-align:left!important;}
  .archive-source a{
    font-family:var(--archive-mono);font-size:10px;letter-spacing:.13em;
    color:var(--ink);text-decoration:none;border-bottom:1px solid rgba(23,24,26,.45);
    padding-bottom:4px;
  }
  .archive-source a:hover{border-bottom-color:transparent;}
  .tx-end{
    font-family:var(--archive-mono)!important;color:#615E69!important;
    text-align:center!important;margin:5vh 0!important;letter-spacing:.3em!important;
  }
  @media (max-width:640px){
    .entry{grid-template-columns:74px minmax(0,1fr) 18px;gap:13px;padding:24px 0;}
    .entry-thumb{width:74px;height:68px;}
    .entry-title{font-size:16px;letter-spacing:-.02em;}
    .entry-dek{display:none;}
    .tx{padding:22px 0 46px;}
    .tx-title{font-size:clamp(27px,9vw,36px);}
    .tx-body p{font-size:13px!important;}
  }
  @media (prefers-reduced-motion:reduce){
    .tx{animation:none;}
  }

  /* ── TRAINING MODALITIES: three stages, not three lines ── */
  .mods{max-width:600px;margin:0 auto;}
  .mod-card{
    position:relative;display:flex;gap:20px;align-items:flex-start;
    text-align:left;padding:34px 0;
    border-bottom:1px solid rgba(23,24,26,.12);
    opacity:0;transform:translateY(14px);
  }
  .mod-card:first-of-type{border-top:1px solid rgba(23,24,26,.12);}
  body[data-view="practice"] .mod-card{
    animation:modRise .85s cubic-bezier(.22,.7,.3,1) forwards;
    animation-delay:calc(.22s + var(--i) * .16s);
  }
  @keyframes modRise{to{opacity:1;transform:translateY(0);}}

  .mod-num{
    font-family:var(--serif);font-size:11px;letter-spacing:.2em;
    color:#615E69;flex:0 0 auto;padding-top:6px;
  }
  .mod-kanji{
    position:absolute;right:-4px;top:14px;
    font-family:var(--serif);font-weight:500;
    font-size:clamp(30px,7vmin,46px);line-height:1;
    color:var(--ink);opacity:.08;letter-spacing:.04em;
    pointer-events:none;user-select:none;
  }
  .mod-text{display:flex;flex-direction:column;gap:12px;min-width:0;flex:1;}
  .mod-name{
    font-family:var(--serif)!important;font-weight:600;
    font-size:clamp(14px,2vmin,17px);letter-spacing:.3em;
    color:var(--ink);margin:0;
  }
  .mod-desc{
    font-family:var(--mono)!important;font-size:12px!important;
    line-height:2.05!important;letter-spacing:.02em!important;
    color:#1E1C22!important;margin:0!important;max-width:44ch!important;
    text-align:left!important;
  }
  /* the load ladder — baseline · structure · limit */
  .mod-load{display:flex;gap:6px;margin-top:2px;}
  .mod-load i{
    display:block;width:22px;height:2px;
    background:rgba(23,24,26,.14);
  }
  .mod-load i.on{background:var(--ink);}
  @media (max-width:640px){
    .mod-card{gap:14px;padding:28px 0;}
    .mod-kanji{font-size:30px;opacity:.07;top:10px;}
    .mod-desc{max-width:none!important;}
  }
  @media (prefers-reduced-motion: reduce){
    .mod-card{opacity:1;transform:none;}
    body[data-view="practice"] .mod-card{animation:none;}
  }

  /* ── the ethos declares itself ─────────────────────────── */
  .ethos-open{
    display:flex;flex-direction:column;align-items:center;
    gap:.1em;margin-bottom:1.1em!important;
  }
  .eo-1,.eo-2{
    font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;
    color:var(--ink);text-transform:none;line-height:1;
    /* misregistered second pass — the plate slipped */
    text-shadow:1.6px 1.2px 0 rgba(23,24,26,.13);
  }
  /* ink dropout: the letterforms carry the same grain as the paper */
  @supports ((-webkit-background-clip:text) or (background-clip:text)){
    .eo-1,.eo-2{
      color:transparent;
      background-color:#17181A;
      background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E");
      background-blend-mode:screen;
      -webkit-background-clip:text;background-clip:text;
    }
  }
  .eo-1{
    font-weight:700;font-size:clamp(20px,3.6vmin,32px);
    letter-spacing:-.012em;
  }
  .eo-2{
    font-weight:900;font-size:clamp(42px,9.4vmin,88px);
    letter-spacing:-.038em;
  }
  .ethos-close{
    font-style:normal!important;
    font-family:'Helvetica Neue',Helvetica,Arial,sans-serif!important;
    font-weight:800!important;font-size:clamp(17px,2.8vmin,25px)!important;
    line-height:1.32!important;letter-spacing:-.015em!important;
    color:var(--ink)!important;max-width:20ch!important;
    margin-left:auto!important;margin-right:auto!important;
  }
  .ethos-label{font-size:10px!important;letter-spacing:.46em!important;}
  @media (max-width:640px){
    .eo-2{font-size:clamp(34px,12vw,54px);}
  }

  /* ── the house line: heavy, printed, shot off a monitor ── */
  .house{
    font-family:'Zen Old Mincho',serif!important;
    font-weight:500!important;
    font-size:clamp(19px,3.5vmin,34px)!important;
    line-height:1.85!important;letter-spacing:.02em!important;
    max-width:19ch!important;margin:0 auto!important;
    color:#17181A!important;text-align:center!important;
  }
  @supports ((-webkit-background-clip:text) or (background-clip:text)){
    .house{
      color:transparent!important;
      background-color:#17181A;
      background-image:
        repeating-linear-gradient(0deg,
          rgba(255,255,255,.34) 0 1px,
          rgba(255,255,255,0) 1px 3px),
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='90' height='90'%3E%3Cfilter id='s'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.1' numOctaves='2'/%3E%3C/filter%3E%3Crect width='90' height='90' filter='url(%23s)' opacity='0.4'/%3E%3C/svg%3E");
      background-blend-mode:screen,screen;
      -webkit-background-clip:text;background-clip:text;
      filter:blur(.3px) contrast(1.5);
      text-shadow:0 0 2px rgba(23,24,26,.28);
    }
  }
  #ethos{padding:26vh 20px 20vh!important;}

  /* the blended line — japanese sits a touch larger to match weight */
  .house{ word-break:normal; }
  .house:lang(ja){ letter-spacing:.06em!important; }

  /* ── the printed texture, shared: house / sub / modality names ── */
  .station .sub, .mod-name{
    font-family:'Zen Old Mincho',serif!important;
    font-weight:500!important;
    color:#17181A!important;
    opacity:1!important;font-style:normal!important;
  }
  .station .sub{
    font-size:clamp(14px,2.1vmin,19px)!important;
    line-height:1.9!important;letter-spacing:.03em!important;
    max-width:26ch!important;margin-left:auto!important;margin-right:auto!important;
  }
  .mod-name{
    font-size:clamp(12px,1.7vmin,15px)!important;
    letter-spacing:.22em!important;
  }
  @supports ((-webkit-background-clip:text) or (background-clip:text)){
    .station .sub, .mod-name{
      color:transparent!important;
      background-color:#17181A;
      background-image:
        repeating-linear-gradient(0deg,
          rgba(255,255,255,.3) 0 1px,
          rgba(255,255,255,0) 1px 3px),
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='90' height='90'%3E%3Cfilter id='s2'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.2' numOctaves='2'/%3E%3C/filter%3E%3Crect width='90' height='90' filter='url(%23s2)' opacity='0.34'/%3E%3C/svg%3E");
      background-blend-mode:screen,screen;
      -webkit-background-clip:text;background-clip:text;
      filter:blur(.18px) contrast(1.4);
      text-shadow:0 0 1.4px rgba(23,24,26,.24);
    }
  }

  /* ── loading / coming soon ─────────────────────────────── */
  .soon-block{margin-top:7vh;display:flex;flex-direction:column;align-items:center;gap:10px;}
  .soon-art{max-width:210px;width:100%;}
  .soon-art:empty{display:none;}
  .soon-art img{width:100%;height:auto;display:block;filter:grayscale(1) contrast(1.12);opacity:.9;}
  .soon-en{
    font-family:'Helvetica Neue',Helvetica,Arial,sans-serif!important;
    font-weight:700!important;font-size:clamp(19px,2.9vmin,26px)!important;
    letter-spacing:-.01em!important;line-height:1!important;
    margin:6px 0 0!important;color:#17181A!important;text-align:center!important;
  }
  .soon-ja{
    font-family:'Zen Old Mincho',serif!important;font-weight:500!important;
    font-size:clamp(15px,2.3vmin,21px)!important;
    letter-spacing:.12em!important;line-height:1.4!important;
    margin:0!important;color:#17181A!important;text-align:center!important;
  }
  .soon-dots i{font-style:normal;opacity:.15;animation:soonDot 1.4s infinite;}
  .soon-dots i:nth-child(2){animation-delay:.22s;}
  .soon-dots i:nth-child(3){animation-delay:.44s;}
  @keyframes soonDot{0%,60%,100%{opacity:.15;}30%{opacity:1;}}
  @supports ((-webkit-background-clip:text) or (background-clip:text)){
    .soon-en,.soon-ja{
      color:transparent!important;background-color:#17181A;
      background-image:
        repeating-linear-gradient(0deg,
          rgba(255,255,255,.32) 0 1px, rgba(255,255,255,0) 1px 3px),
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='90' height='90'%3E%3Cfilter id='s3'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.1' numOctaves='2'/%3E%3C/filter%3E%3Crect width='90' height='90' filter='url(%23s3)' opacity='0.38'/%3E%3C/svg%3E");
      background-blend-mode:screen,screen;
      -webkit-background-clip:text;background-clip:text;
      filter:blur(.22px) contrast(1.45);
      text-shadow:0 0 1.6px rgba(23,24,26,.26);
    }
  }
  @media (prefers-reduced-motion: reduce){ .soon-dots i{animation:none;opacity:.6;} }

  /* ── the breath owns the screen: nothing exists below it ── */
  body:not(.ritual-done){
    overflow:hidden;
    height:100vh;
  }
  body:not(.ritual-done) #ethos,
  body:not(.ritual-done) #floor{visibility:hidden;}

  /* ══════════════════════════════════════════════════════════
     MOBILE — the printed texture is too fine to survive small
     type, so it eases off rather than blurring the words.
     ══════════════════════════════════════════════════════════ */
  html{-webkit-text-size-adjust:100%;}

  @media (max-width:700px){
    /* crisp letterforms: no blur, no halo, wider scanline pitch */
    .house, .station .sub, .mod-name, .soon-en, .soon-ja{
      filter:none !important;
      text-shadow:none !important;
      background-image:repeating-linear-gradient(0deg,
        rgba(255,255,255,.20) 0 1px,
        rgba(255,255,255,0) 1px 4px) !important;
      background-blend-mode:screen !important;
    }

    /* the house line: bigger, tighter measure, room to breathe */
    #ethos{padding:15vh 20px 11vh !important;}
    .house{
      font-size:clamp(21px,5.6vw,27px) !important;
      line-height:1.95 !important;
      max-width:17ch !important;
      letter-spacing:.015em !important;
    }

    .station .sub{font-size:16px !important;line-height:1.85 !important;max-width:24ch !important;}
    .soon-en{font-size:21px !important;}
    .soon-ja{font-size:17px !important;}
    .soon-art{max-width:170px;}

    /* stations: less side gutter, more usable width */
    #armour,#practice,#archive,#works{padding:max(8vh,84px) 20px 12vh !important;}
    .station p{font-size:13.5px !important;line-height:2.05 !important;}
    .page .lede{font-size:13.5px;line-height:1.9;max-width:34ch;}
    .station h2{font-size:23px;letter-spacing:.3em;text-indent:.3em;margin-bottom:4vh;}

    /* the ladder */
    .mod-card{padding:26px 0;gap:12px;}
    .mod-desc{font-size:12.5px !important;line-height:1.95 !important;}
    .mod-name{font-size:13px !important;letter-spacing:.2em !important;}

    /* the blog reads as a column, not a two-up */
    .entry{gap:13px;padding:22px 0;}
    .entry-title{font-size:17px;}
    .entry-dek{font-size:12px;line-height:1.75;}
    .tx-title{font-size:23px;}
    .tx-body p{font-size:13.5px !important;line-height:2.05 !important;}

    /* the signal form must never overflow the screen */
    .signal{width:100%;max-width:320px;}
    .signal input{width:auto;flex:1 1 auto;min-width:0;padding:12px;}
    .signal button{flex:0 0 auto;padding:12px 14px;}

    /* comfortable touch targets */
    .enter,.page .cta{padding:14px 30px;}
    .lang-toggle button{padding:6px 6px;}
  }

  /* very narrow phones */
  @media (max-width:380px){
    .house{font-size:20px !important;max-width:15ch !important;}
    .station h2{font-size:21px;}
    #armour,#practice,#archive,#works{padding:max(8vh,80px) 16px 12vh !important;}
  }

  /* ══ MOBILE ══════════════════════════════════════════════
     the printed texture is built in css pixels; on a 3x phone
     screen the scanlines and blur land on far fewer glyph
     pixels, so type that reads as photocopied on desktop turns
     to mush. small screens get a lighter print.              */
  @media (max-width:640px){

    /* the blur is the culprit — drop it, keep a softer grain */
    .house, .station .sub, .mod-name, .soon-en, .soon-ja{
      filter:none!important;
      text-shadow:0 0 1px rgba(23,24,26,.14)!important;
      background-image:
        repeating-linear-gradient(0deg,
          rgba(255,255,255,.2) 0 1px,
          rgba(255,255,255,0) 1px 4px),
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='70' height='70'%3E%3Cfilter id='m'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.4' numOctaves='2'/%3E%3C/filter%3E%3Crect width='70' height='70' filter='url(%23m)' opacity='0.22'/%3E%3C/svg%3E")!important;
    }

    /* the house line: bigger, tighter measure, room to breathe */
    #ethos{padding:15vh 18px 13vh!important;}
    .house{
      font-size:clamp(19px,5.6vw,26px)!important;
      line-height:1.95!important;
      max-width:15ch!important;
      letter-spacing:.01em!important;
    }

    /* stations: less side gutter, more usable width */
    #armour,#practice,#archive,#works{padding:max(9vh,88px) 20px 12vh!important;}
    .screen{width:100%!important;}
    .page .lede{font-size:12.5px;max-width:34ch;}

    /* the reading column */
    .tx{max-width:100%;}
    .tx-title{font-size:clamp(20px,6vw,26px);}
    .tx-dek{font-size:13px!important;line-height:1.85!important;}
    .tx-date{margin-bottom:4vh!important;padding-bottom:3vh;}

    /* modalities stack tighter, ghost kanji tucks behind */
    .mod-card{gap:12px;}
    .mod-kanji{right:-2px;opacity:.06;}
    .mod-desc{line-height:1.95!important;}

    /* the signal field must never overflow the screen */
    .signal{width:100%;max-width:320px;}
    .signal input{width:auto;flex:1;min-width:0;}
    .signal button{white-space:nowrap;}

    /* loading block */
    .soon-block{margin-top:5vh;}
    .soon-art{max-width:170px;}

    /* header sits closer in */
    header{padding:14px 16px;}
  }

  /* short screens — keep the threshold from stacking up */
  @media (max-height:700px) and (max-width:640px){
    #ethos{padding:11vh 18px 9vh!important;}
  }

  /* ── movement typography: one editorial register ── */
  #practice .page > .lede{
    max-width:43ch;font-size:clamp(14px,1.7vw,16px);line-height:2.05;
  }
  #practice .mod-desc{
    font-family:var(--serif)!important;font-size:clamp(13px,1.5vw,15px)!important;
    line-height:2.05!important;letter-spacing:.018em!important;font-weight:400!important;
  }
  #practice .practice-questions h3{font-size:11px;}
  #practice .practice-questions p{
    max-width:34ch;font-family:var(--serif);font-size:clamp(15px,1.8vw,17px)!important;
    line-height:2!important;letter-spacing:.025em!important;font-weight:500;
  }


  /* ── the gate within the gate: corner sigil ──────────────
     Four 門 around 中, after the 夢中夢 cross. Hovering (or focusing,
     or tapping on touch) parts the glyphs outward and surfaces the
     metal dock. The button takes no clicks until the sigil is open. */
  .portal-sigil{
    position:fixed;z-index:60;
    right:max(18px,env(safe-area-inset-right));
    bottom:max(18px,env(safe-area-inset-bottom));
    width:118px;height:118px;
    display:grid;place-items:center;
  }
  .sigil-glyph{
    position:absolute;left:50%;top:50%;
    font-family:var(--serif);font-size:25px;line-height:1;font-weight:700;
    transform:translate(-50%,-50%) translate(var(--sx,0),var(--sy,0));
    transition:transform .5s cubic-bezier(.22,.9,.3,1),opacity .4s ease;
    pointer-events:none;user-select:none;
  }
  .g-top{--sy:-38px;}
  .g-left{--sx:-38px;}
  .g-right{--sx:38px;}
  .g-bottom{--sy:38px;}
  .g-center{font-size:24px;color:rgba(23,24,26,.62);}
  .portal-sigil:hover .g-top,   .portal-sigil.is-open .g-top,   .portal-sigil:focus-within .g-top{--sy:-64px;opacity:0;}
  .portal-sigil:hover .g-left,  .portal-sigil.is-open .g-left,  .portal-sigil:focus-within .g-left{--sx:-64px;opacity:0;}
  .portal-sigil:hover .g-right, .portal-sigil.is-open .g-right, .portal-sigil:focus-within .g-right{--sx:64px;opacity:0;}
  .portal-sigil:hover .g-bottom,.portal-sigil.is-open .g-bottom,.portal-sigil:focus-within .g-bottom{--sy:64px;opacity:0;}
  .portal-sigil:hover .g-center,.portal-sigil.is-open .g-center,.portal-sigil:focus-within .g-center{opacity:0;transform:translate(-50%,-50%) scale(1.6);}

  .portal-sigil .client-portal-dock{
    position:relative;z-index:1;
    min-width:104px;min-height:34px;
    display:flex;align-items:center;justify-content:space-between;gap:10px;
    padding:0 11px;
    border:1px solid rgba(23,24,26,.5);border-radius:2px;
    color:#252329;
    background:
      repeating-linear-gradient(180deg,rgba(255,255,255,.5) 0 1px,rgba(23,24,26,.03) 1px 3px),
      linear-gradient(178deg,#FBFAF8,#C9C8C4 48%,#EFEEEA 94%);
    box-shadow:
      inset 0 1px 0 #fff,
      inset 0 -1px 0 rgba(23,24,26,.22),
      inset 1px 0 0 rgba(255,255,255,.6),
      inset -1px 0 0 rgba(23,24,26,.1),
      0 5px 16px rgba(23,24,26,.12);
    font-family:var(--mono);font-size:6.4px;font-weight:700;letter-spacing:.18em;
    cursor:pointer;pointer-events:none;
    opacity:0;transform:scale(.82);
    transition:opacity .35s ease .08s,transform .45s cubic-bezier(.22,.9,.3,1) .08s,color .25s ease,background .25s ease;
  }
  .portal-sigil:hover .client-portal-dock,
  .portal-sigil.is-open .client-portal-dock,
  .portal-sigil:focus-within .client-portal-dock{
    opacity:1;transform:scale(1);pointer-events:auto;
  }
  .portal-sigil .client-portal-dock i{font-family:var(--serif);font-size:14px;font-style:normal;letter-spacing:0;opacity:.66;}
  .portal-sigil .client-portal-dock:hover,
  .portal-sigil .client-portal-dock:focus-visible{color:var(--mist);background:var(--ink);}
  .portal-sigil .client-portal-dock:focus-visible{outline:2px solid var(--ink);outline-offset:3px;}
  .portal-sigil .client-portal-dock:active{
    transform:scale(.985);
    box-shadow:inset 0 1px 3px rgba(23,24,26,.3),inset 0 -1px 0 rgba(255,255,255,.4);
  }

  @media(max-width:640px){
    .portal-sigil{width:96px;height:96px;right:max(10px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));}
    .sigil-glyph{font-size:21px;}
    .g-top{--sy:-30px;}.g-left{--sx:-30px;}.g-right{--sx:30px;}.g-bottom{--sy:30px;}
    .portal-sigil:hover .g-top,.portal-sigil.is-open .g-top{--sy:-52px;}
    .portal-sigil:hover .g-left,.portal-sigil.is-open .g-left{--sx:-52px;}
    .portal-sigil:hover .g-right,.portal-sigil.is-open .g-right{--sx:52px;}
    .portal-sigil:hover .g-bottom,.portal-sigil.is-open .g-bottom{--sy:52px;}
    .portal-sigil .client-portal-dock{min-width:92px;min-height:31px;font-size:5.8px;}
  }
  @media(prefers-reduced-motion:reduce){
    .sigil-glyph,.portal-sigil .client-portal-dock{transition:opacity .2s ease;}
    .portal-sigil:hover .g-center,.portal-sigil.is-open .g-center,.portal-sigil:focus-within .g-center{transform:translate(-50%,-50%);}
  }


  /* ── signal texture: the loader's degraded print, spread deliberately.
     Dark recipe for ink-on-paper, light recipe for paper-on-ink.
     Inverted hover states revert to plain text so labels stay legible. */
  @supports ((-webkit-background-clip:text) or (background-clip:text)){
    .sigil-glyph,
    .portal-sigil .client-portal-dock span,
    .page .cta,
    .screen-bar .bar-x{
    color:transparent;background-color:#17181A;
    background-image:
      repeating-linear-gradient(0deg,rgba(255,255,255,.32) 0 1px,rgba(255,255,255,0) 1px 3px),
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='90' height='90'%3E%3Cfilter id='s3'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.1' numOctaves='2'/%3E%3C/filter%3E%3Crect width='90' height='90' filter='url(%23s3)' opacity='0.38'/%3E%3C/svg%3E");
    background-blend-mode:screen,screen;
    -webkit-background-clip:text;background-clip:text;
    filter:blur(.2px) contrast(1.4);
    text-shadow:0 0 1.5px rgba(23,24,26,.24);
    }
    .portal-sigil .client-portal-dock:hover span,
    .portal-sigil .client-portal-dock:focus-visible span{
      color:var(--mist);background:none;-webkit-background-clip:border-box;background-clip:border-box;
      filter:none;text-shadow:none;
    }
    .page .cta:hover,
    .screen-bar .bar-x:hover{
      color:var(--mist);background-color:var(--seal);background-image:none;
      -webkit-background-clip:border-box;background-clip:border-box;
      filter:none;text-shadow:none;
    }
    .screen-bar .bar-x:hover{background-color:transparent;color:var(--ink);}
  }
  @media (max-width:700px){
    .sigil-glyph,.portal-sigil .client-portal-dock span,.page .cta,.screen-bar .bar-x{
      filter:none!important;text-shadow:none!important;
    }
  }

  .client-portal-dialog{
    position:fixed;z-index:70;
    inset:auto auto calc(max(16px,env(safe-area-inset-bottom)) + 54px) max(16px,env(safe-area-inset-left));
    width:min(370px,calc(100vw - 32px));max-height:min(620px,calc(100svh - 100px));
    margin:0;padding:0;overflow:auto;
    border:1px solid var(--ink);color:var(--ink);background:#FBFBFA;
    box-shadow:10px 12px 0 rgba(23,24,26,.13),0 24px 70px rgba(23,24,26,.16);
    font-family:var(--mono);
  }
  .client-portal-dialog::backdrop{background:rgba(250,250,249,.3);backdrop-filter:blur(2px);}
  .client-portal-bar{
    min-height:38px;display:flex;align-items:center;justify-content:space-between;
    padding-left:14px;color:#FAFAF9;background:#17181A;
    font-size:8px;font-weight:700;letter-spacing:.2em;
  }
  .client-portal-bar button{
    width:44px;height:38px;border:0;border-left:1px solid rgba(255,255,255,.35);
    color:#fff;background:#17181A;font:20px/1 var(--mono);cursor:pointer;
  }
  .client-portal-bar button:hover,.client-portal-bar button:focus-visible{color:#17181A;background:#fff;}
  .client-portal-form{display:grid;gap:13px;padding:24px;}
  .client-portal-form .client-portal-kicker{margin:0;color:#66636D;font-size:8px!important;font-weight:700;letter-spacing:.2em!important;text-align:left;}
  .client-portal-form h2{margin:0;font:500 25px/1.15 var(--serif);letter-spacing:.02em;}
  .client-portal-form > p:not(.client-portal-kicker):not(.client-portal-state){
    margin:0 0 4px;color:#3E3B43;font-size:11px!important;line-height:1.75!important;letter-spacing:.02em!important;text-align:left;
  }
  .client-portal-form label{margin-top:2px;font-size:8px;font-weight:700;letter-spacing:.18em;}
  .client-portal-form input{
    width:100%;min-height:48px;padding:0 13px;border:1px solid #5D5B61;
    color:#17181A;background:#fff;font:13px var(--mono);letter-spacing:.08em;
  }
  .client-portal-form input:focus-visible{outline:2px solid #17181A;outline-offset:2px;}
  .client-portal-state{min-height:18px;margin:-4px 0 0!important;color:#702C32!important;font-size:10px!important;line-height:1.5!important;text-align:left!important;}
  .client-portal-submit{
    min-height:48px;padding:0 16px;border:1px solid #17181A;color:#fff;background:#17181A;
    font:700 9px var(--mono);letter-spacing:.22em;cursor:pointer;
  }
  .client-portal-submit:hover,.client-portal-submit:focus-visible{color:#17181A;background:#fff;}
  .client-portal-submit[disabled]{opacity:.55;cursor:wait;}
  .client-portal-new{
    display:block;margin-top:2px;padding-top:13px;border-top:1px solid rgba(23,24,26,.22);
    color:#3E3B43;font-size:8px;font-weight:700;letter-spacing:.15em;text-decoration:none;text-align:center;
  }
  .client-portal-new:hover,.client-portal-new:focus-visible{color:#17181A;text-decoration:underline;text-underline-offset:4px;}
  @media(max-width:640px){
    .client-portal-dialog{inset:auto 12px calc(max(12px,env(safe-area-inset-bottom)) + 52px) 12px;width:auto;max-height:calc(100svh - 86px);}
    .client-portal-form{padding:20px;}
  }


/* Soft Armour launch state: no decorative imagery. Product media appears only
   after it is explicitly uploaded and attached through House / E-COM. */
#armour { background: var(--mist) !important; }
#armour .soon-art { display: none !important; }
.shop-status { font-family:var(--mono);font-size:9px;letter-spacing:.18em;color:#8a878f;margin-top:5px; }

/* waitlist / register-interest on a Soft Armour tile */
.shop-waitlist{margin-top:10px;display:flex;flex-direction:column;gap:7px;}
.shop-wl-row{display:flex;gap:6px;}
.shop-wl-email{flex:1;min-width:0;font-family:var(--mono);font-size:11px;letter-spacing:.04em;
  padding:8px 9px;border:1px solid rgba(23,24,26,.26);background:#fff;color:#17181A;}
.shop-waitlist .shop-add{white-space:nowrap;padding:8px 12px;}
.shop-wl-consent{display:flex;align-items:center;gap:6px;font-family:var(--mono);font-size:8px;
  letter-spacing:.06em;color:#8a878f;cursor:pointer;}
.shop-wl-note{font-family:var(--mono);font-size:8px;letter-spacing:.08em;color:#8a878f;min-height:10px;margin:0;}

/* ── SOFTHELM PAY · minimal payment rail chooser ───────── */
.bag-payment{margin-top:12px;padding-top:12px;border-top:1px solid rgba(23,24,26,.14);}
.bag-payment-methods{display:grid;gap:6px;}
.bag-payment-option{display:flex;align-items:center;justify-content:space-between;gap:12px;
  border:1px solid rgba(23,24,26,.20);padding:10px 11px;font-family:var(--mono);font-size:8px;
  letter-spacing:.15em;cursor:pointer;}
.bag-payment-option input{width:auto;margin:0;accent-color:#17181A;}
.bag-payment-option.is-offline{opacity:.38;cursor:not-allowed;}
.bag-payment-option strong{font-size:8px;font-weight:400;letter-spacing:.12em;}
.bag-payment-loading{font-family:var(--mono);font-size:8px;letter-spacing:.16em;color:var(--faint);}
#softhelmPayRequest{position:fixed;inset:0;z-index:98;display:none;align-items:center;justify-content:center;
  background:rgba(250,250,249,.96);padding:18px;}
#softhelmPayRequest.on{display:flex;}
.pay-request-card{width:min(92vw,520px);border:1px solid rgba(23,24,26,.30);background:var(--mist);padding:30px 26px;position:relative;}
.pay-request-card h4{font-family:var(--serif);font-weight:500;font-size:15px;letter-spacing:.28em;margin-bottom:20px;}
.pay-request-row{border-top:1px solid rgba(23,24,26,.14);padding:11px 0;}
.pay-request-row:last-of-type{border-bottom:1px solid rgba(23,24,26,.14);}
.pay-request-label{font-family:var(--mono);font-size:7px;letter-spacing:.18em;color:var(--faint);margin-bottom:5px;}
.pay-request-value{font-family:var(--mono);font-size:10px;line-height:1.55;word-break:break-all;}
.pay-request-note{font-family:var(--mono);font-size:8px;line-height:1.8;color:var(--faint);margin:16px 0;}
.pay-request-actions{display:flex;gap:8px;flex-wrap:wrap;}
.pay-request-actions button,.pay-request-actions a{font-family:var(--mono);font-size:8px;letter-spacing:.16em;border:1px solid #17181A;
  background:#17181A;color:#FAFAF9;padding:10px 13px;text-decoration:none;cursor:pointer;}
.pay-request-actions .secondary{background:transparent;color:#17181A;}
