:root{--paper-warm: #e7e0d1;--card: #fbf7ee;--card-bright: #fdfbf4;--card-cream: #f7f0e1;--front: #e4dbc7;--ink: #1b2a22;--ink-70: rgba(27, 42, 34, .7);--ink-60: rgba(27, 42, 34, .6);--ink-55: rgba(27, 42, 34, .55);--ink-50: rgba(27, 42, 34, .5);--ink-45: rgba(27, 42, 34, .45);--ink-35: rgba(27, 42, 34, .35);--ink-25: rgba(27, 42, 34, .25);--ink-16: rgba(27, 42, 34, .16);--ink-13: rgba(27, 42, 34, .13);--ink-08: rgba(27, 42, 34, .08);--red: #a8382a;--blue: #2b4a8b;--green: #1f5140;--gold: #c4881f;--hand: #1f3a6b;--serif: "Instrument Serif", Georgia, serif;--sans: Archivo, system-ui, -apple-system, sans-serif;--mono: "Courier Prime", ui-monospace, "SF Mono", Menlo, monospace;--script: "Nothing You Could Do", cursive;--display: "Bowlby One SC", var(--sans);--grain: repeating-linear-gradient(0deg, rgba(27, 42, 34, .021) 0 1px, transparent 1px 3px), repeating-linear-gradient(90deg, rgba(27, 42, 34, .016) 0 1px, transparent 1px 4px);--side-pad: max(30px, env(safe-area-inset-left));--side-w: calc(138px + var(--side-pad));--pad-r: max(28px, env(safe-area-inset-right));--pad-b: max(20px, env(safe-area-inset-bottom))}*{box-sizing:border-box}html,body{margin:0;height:100%;overscroll-behavior:none}body{background-color:var(--card-cream);background-image:radial-gradient(70% 45% at 20% 10%,#ffffff80,#f7f0e100 70%),radial-gradient(55% 40% at 86% 74%,#b89e6e1a,#f7f0e100 70%),url(/assets/paper.jpg);background-size:auto,auto,cover;background-position:center;background-repeat:no-repeat;color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;border:0;background:none;padding:0;margin:0;cursor:pointer;text-align:inherit}button:disabled{cursor:default}input,textarea{font:inherit;color:inherit}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}:focus-visible{outline:2px solid var(--red);outline-offset:2px}@keyframes pm{0%{opacity:0;transform:rotate(-24deg) scale(2.4)}55%{opacity:.95;transform:rotate(-11deg) scale(1)}70%{transform:rotate(-11deg) scale(1.04)}to{opacity:.85;transform:rotate(-11deg) scale(1)}}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes fly{0%{opacity:0;transform:translate(-190px,84px) rotate(-16deg) scale(1.18)}18%{opacity:1}62%{transform:translate(-4px,-30px) rotate(-3deg) scale(.72)}to{transform:translateY(-6px) rotate(0) scale(.24);opacity:0}}@keyframes fadeUp{0%,55%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes needglow{0%,to{box-shadow:0 0 0 1px #a8382a66,0 0 8px #a8382a38}50%{box-shadow:0 0 0 2px #a8382aa6,0 0 20px #a8382a73}}@keyframes newglow{0%,to{box-shadow:0 6px 16px #1b2a2224,0 0 0 1px #c4881f59,0 0 10px #c4881f38}50%{box-shadow:0 6px 16px #1b2a2224,0 0 0 1px #c4881f8c,0 0 26px #c4881f80}}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.app{height:100dvh;display:grid;grid-template-columns:var(--side-w) minmax(0,1fr);grid-template-rows:minmax(0,1fr);grid-template-areas:"side stage"}.topbar{display:none;grid-area:top}.side{grid-area:side;min-height:0;overflow-y:auto;display:flex;flex-direction:column;align-items:center;gap:20px;padding:20px 10px 20px var(--side-pad);z-index:40}.side>:first-child{margin-top:auto}.side>:last-child{margin-bottom:auto}.side-brand{display:flex;flex-direction:column;align-items:center;gap:20px}.side-logo{width:78px;height:80px;object-fit:contain;flex:none;transform:rotate(-2deg);filter:drop-shadow(0 2px 1.5px rgba(27,42,34,.22))}.nav{flex:none;width:100%;display:flex;flex-direction:column;gap:5px}.nav-item{display:flex;align-items:center;gap:9px;width:100%;padding:6px 7px;color:var(--ink-50);text-align:left}.nav-item[aria-current=page]{color:var(--red)}.nav-item svg{flex:none}.nav-label{flex:1;min-width:0;font:400 14px/1 var(--display);letter-spacing:.02em;white-space:nowrap;text-transform:uppercase}.lang{position:relative;flex:none;width:74px;height:24px;border:1px solid var(--ink-25);border-radius:999px;display:flex;align-items:center}.lang-knob{position:absolute;top:2px;left:2px;width:34px;height:18px;border-radius:999px;background:var(--red);transition:left .22s cubic-bezier(.3,.9,.25,1)}.lang[data-lang=en] .lang-knob{left:36px}.lang span{position:relative;flex:1;text-align:center;font:400 8px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-45);transition:color .2s}.lang[data-lang=es] span:first-of-type,.lang[data-lang=en] span:last-of-type{color:var(--card)}.stage{grid-area:stage;position:relative;min-width:0;min-height:0;overflow:hidden}.panel{position:absolute;top:0;right:0;bottom:0;left:0;padding:22px var(--pad-r) var(--pad-b) 28px;overflow-y:auto;-webkit-overflow-scrolling:touch}.title{font:400 26px/1 var(--display);color:var(--red);text-transform:uppercase;letter-spacing:.02em}.title-sm{font-size:22px}.subtitle{font:400 9px/1.4 var(--mono);letter-spacing:.18em;color:var(--ink-45);text-transform:uppercase;margin-top:5px}.kicker{font:400 9px/1 var(--mono);letter-spacing:.2em;color:var(--ink-45);text-transform:uppercase}.empty{padding:16px;border:1px dashed rgba(27,42,34,.24);font:400 11px/1.6 var(--sans);color:var(--ink-55)}.panel-mailbox{padding:20px var(--pad-r) max(16px,env(safe-area-inset-bottom)) 28px;overflow:hidden;display:flex;flex-direction:column;align-items:center}.pile-stage{flex:1;min-height:0;width:100%;display:flex;align-items:center;justify-content:center;container-type:size;touch-action:pan-y}.pile{position:relative;width:min(100cqw,150cqh);aspect-ratio:3 / 2}.pile-empty{max-width:360px;text-align:center}.pc{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;padding:13px;background-color:var(--card);background-image:var(--grain);border:1px solid var(--ink-13);box-shadow:0 6px 16px #1b2a2224;cursor:grab;user-select:none;-webkit-user-select:none;touch-action:pan-y;transition:transform .3s cubic-bezier(.2,.8,.2,1),opacity .3s}.pc[data-dragging=true]{cursor:grabbing}.pc[data-sealed=true]{animation:newglow 2.6s ease-in-out infinite}.pc-front{position:relative;flex:1;min-width:0;overflow:hidden;background:repeating-linear-gradient(38deg,rgba(27,42,34,.14) 0 5px,transparent 5px 11px),var(--front);display:flex;flex-direction:column;justify-content:space-between;padding:11px}.pc-front>img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;pointer-events:none}.pc-scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(rgba(27,42,34,.3),transparent 28%,transparent 55%,rgba(27,42,34,.6))}.pc-label,.pc-caption{position:relative}.pc-label{font:400 8px/1.3 var(--mono);letter-spacing:.1em;color:var(--ink-55);text-transform:uppercase}.pc-place{font:400 25px/1.05 var(--serif)}.pc-meta{font:400 9px/1.4 var(--mono);letter-spacing:.14em;color:var(--ink-55);text-transform:uppercase;margin-top:5px}.pc-new{position:absolute;top:11px;right:11px;font:400 8px/1.3 var(--mono);letter-spacing:.16em;color:var(--red);text-transform:uppercase}.pc[data-photo=true] .pc-label,.pc[data-photo=true] .pc-meta{color:#fbf7eee0}.pc[data-photo=true] .pc-place{color:var(--card)}.pc[data-photo=true] .pc-new{color:var(--card);background:var(--red);padding:2px 5px}.pile-count{flex:none;margin-top:10px;padding:5px 10px;border:1px solid rgba(27,42,34,.2);font:400 9px/1 var(--mono);letter-spacing:.1em;color:var(--ink-60)}.reader{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;flex-direction:column;padding:max(14px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(14px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));background-color:var(--paper-warm);background-image:repeating-linear-gradient(0deg,rgba(27,42,34,.026) 0 1px,transparent 1px 3px),repeating-linear-gradient(90deg,rgba(27,42,34,.02) 0 1px,transparent 1px 4px);animation:rise .3s ease-out}.reader-close{position:absolute;top:max(10px,env(safe-area-inset-top));left:max(14px,env(safe-area-inset-left));z-index:2;width:34px;height:30px;display:flex;align-items:center;justify-content:center;color:var(--red);transition:transform .16s}.reader-close:hover{transform:translate(-3px)}.reader-close:active{transform:translate(-1px) scale(.94)}.flip-stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;perspective:1600px;container-type:size}.flipper{position:relative;width:min(100cqw,150cqh);aspect-ratio:3 / 2;transform-style:preserve-3d;transition:transform .62s cubic-bezier(.22,.78,.2,1);cursor:pointer}.flipper[data-side=back]{transform:rotateY(180deg)}.face{position:absolute;top:0;right:0;bottom:0;left:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;box-shadow:0 14px 34px #1b2a222e}.face-front{background:var(--card);padding:12px;display:flex;flex-direction:column}.face-photo{position:relative;flex:1;min-height:0;overflow:hidden;background:repeating-linear-gradient(38deg,rgba(27,42,34,.14) 0 5px,transparent 5px 11px),var(--front);display:flex;align-items:flex-end;padding:12px}.face-photo img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.face-caption{position:relative;font:400 9px/1.4 var(--mono);letter-spacing:.08em;color:var(--ink-60);text-transform:uppercase}.face-photo[data-photo=true] .face-caption{color:var(--card);text-shadow:0 1px 3px rgba(0,0,0,.45)}.face-foot{flex:none;display:flex;justify-content:space-between;align-items:baseline;padding:9px 2px 1px}.face-place{font:400 18px/1 var(--serif)}.face-postmark{font:400 9px/1 var(--mono);letter-spacing:.12em;color:var(--ink-50);text-transform:uppercase}.face-back{transform:rotateY(180deg);background:var(--card-bright);border:1px solid var(--ink-16);padding:13px;display:flex;gap:12px;container-type:inline-size}.face-back:after,.writing-card:after{content:"";position:absolute;top:calc(13 * var(--px));bottom:calc(13 * var(--px));left:55%;width:1px;background:#1b2a2233}.back-note{width:55%;padding-right:12px;display:flex;flex-direction:column;min-height:0}.back-label{font:400 7px/1 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-35)}.back-text,.note-input{font-family:var(--script);font-size:5.52cqw;line-height:7.14cqw;color:var(--hand);background-image:linear-gradient(transparent calc(100% - 1px),#2b4a8b29 0);background-size:100% 7.14cqw;background-position:0 -1.95cqw}.back-text{flex:1;min-height:0;margin-top:7px;overflow:hidden;white-space:pre-wrap;word-break:break-word}.back-scan{flex:1;min-height:0;margin-top:7px;overflow:hidden}.back-scan img{width:100%;height:100%;object-fit:contain}.back-addr{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:space-between;padding-left:2px}.back-stamp-row{display:flex;justify-content:flex-end}.back-stamp{position:relative;width:46px;flex:none;border:1px dashed rgba(27,42,34,.22);padding:3px}.postmark{position:absolute;top:2px;left:-44px;width:74px;height:74px;border:2px solid rgba(27,42,34,.5);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#1b2a2280;animation:pm .8s ease-out both;pointer-events:none}.postmark span:nth-child(1){font:700 7px/1.3 var(--mono);letter-spacing:.08em}.postmark span:nth-child(2){font:700 9px/1.3 var(--mono);letter-spacing:.04em}.postmark span:nth-child(3){font:400 6px/1.3 var(--mono);letter-spacing:.12em}.back-name{font:400 15px/1.2 var(--serif);margin-top:6px;padding-bottom:4px;border-bottom:1px solid var(--ink-16)}.back-line{font:400 8px/1.4 var(--mono);letter-spacing:.1em;color:var(--ink-50);text-transform:uppercase;margin-top:7px;padding-bottom:4px;border-bottom:1px solid var(--ink-16)}.back-blank{height:12px;border-bottom:1px solid var(--ink-16)}.back-foot{font:400 6px/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:#1b2a2252;margin-top:9px}.stamp-wrap{width:100%;container-type:inline-size}.stamp{position:relative;width:100%;aspect-ratio:88 / 116;border:6cqw dotted var(--card-cream);background-color:var(--card);background-image:repeating-linear-gradient(0deg,rgba(27,42,34,.03) 0 1px,transparent 1px 3px);box-shadow:0 1px 2px #1b2a222e;overflow:hidden}.stamp img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;display:block;background:var(--card)}.stamp-eng{position:absolute;top:0;right:0;bottom:0;left:0;border:1px solid currentColor;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:4cqw 3cqw}.stamp-eng-top,.stamp-eng-unit{font:400 5.6cqw/1 var(--mono);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}.stamp-eng-art{width:100%;flex:1 1 auto;min-height:38%;margin:4cqw 0;background:repeating-linear-gradient(115deg,currentColor 0 1px,transparent 1px 4px),repeating-linear-gradient(-25deg,currentColor 0 1px,transparent 1px 7px);opacity:.5}.stamp-eng-denom{display:flex;align-items:baseline;gap:2cqw;white-space:nowrap}.stamp-eng-denom b{font:400 15cqw/1 var(--serif)}.stamp-mid{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;justify-content:space-between;padding:5cqw;overflow:hidden}.stamp-mid-top{position:relative;font:400 5.6cqw/1 var(--mono);letter-spacing:.08em;color:var(--card);text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stamp-mid-sun{position:absolute;right:-9%;bottom:16%;width:56%;aspect-ratio:1;border-radius:50%;background:var(--card);opacity:.9}.stamp-mid-hill{position:absolute;left:-7%;bottom:-5%;width:44%;height:24%;background:#fbf7ee80;clip-path:polygon(0 100%,100% 100%,0 0)}.stamp-mid-denom{position:relative;font:400 20cqw/1 var(--serif);color:var(--card)}.stamp-half{position:absolute;top:0;right:0;bottom:0;left:0;background-image:repeating-linear-gradient(45deg,rgba(27,42,34,.13) 0 3px,transparent 3px 7px);display:flex;align-items:flex-end;overflow:hidden}.stamp-half-dots{position:absolute;top:0;right:0;bottom:0;left:0;background-size:4px 4px;opacity:.55}.stamp-half-bar{position:relative;width:100%;padding:2cqw 3cqw;background:#fbf7eee0;display:flex;justify-content:space-between;align-items:baseline;gap:2cqw}.stamp-half-bar span{font:400 5.6cqw/1 var(--mono);letter-spacing:.02em;color:var(--ink);text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stamp-half-bar b{font:400 12cqw/1 var(--serif);color:var(--ink);white-space:nowrap}.rule{margin:24px 0 12px;display:flex;align-items:center;gap:10px}.rule span:first-child{font:400 9px/1 var(--mono);letter-spacing:.2em;color:var(--ink-45);text-transform:uppercase}.rule span:last-child{flex:1;height:1px;background:#1b2a2224}.transit-list{display:flex;flex-direction:column;gap:11px}.transit{position:relative;padding:14px;border:1px solid var(--ink-13);background:var(--card);overflow:hidden}.transit-rings{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.5;background:radial-gradient(circle at 50% 50%,transparent 0 47%,rgba(27,42,34,.16) 47% calc(47% + 1px),transparent calc(47% + 1px)),radial-gradient(circle at 50% 50%,transparent 0 31%,rgba(27,42,34,.1) 31% calc(31% + 1px),transparent calc(31% + 1px)),radial-gradient(circle at 50% 50%,transparent 0 15%,rgba(27,42,34,.08) 15% calc(15% + 1px),transparent calc(15% + 1px)),repeating-linear-gradient(0deg,transparent 0 21px,rgba(27,42,34,.07) 21px 22px),linear-gradient(90deg,transparent calc(50% - .5px),rgba(27,42,34,.1) calc(50% - .5px) calc(50% + .5px),transparent calc(50% + .5px))}.transit-globe{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);height:150%;aspect-ratio:1;pointer-events:none;opacity:.16;fill:var(--ink)}.transit-body{position:relative}.transit-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.transit-who{font:400 17px/1 var(--serif);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.transit-when{display:flex;flex-direction:column;align-items:flex-end;gap:3px;text-align:right;flex:none}.transit-clock{font:700 13px/1 var(--mono);letter-spacing:.06em;color:var(--red);font-variant-numeric:tabular-nums}.transit-arrives{font:400 8px/1.2 var(--mono);letter-spacing:.12em;color:var(--ink-50);text-transform:uppercase}.route{position:relative;max-width:560px;margin:4px auto 0}.route svg{display:block;width:100%;height:auto;overflow:visible}.transit-foot{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;font:400 8px/1 var(--mono);letter-spacing:.1em;color:var(--ink-45);text-transform:uppercase}.transit-foot>span:last-child{text-align:right}.cancel-btn{display:flex;align-items:center;gap:5px;padding:4px 7px;border:1px solid rgba(168,56,42,.35);color:var(--red);font:400 8px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase}.cancel-btn:hover{background:#a8382a1a}@property --px{syntax: "<length>"; inherits: true; initial-value: 1px;}.panel-compose{padding:0;overflow:hidden;display:flex;flex-direction:column}.tape{height:6px;flex:none;background:repeating-linear-gradient(-45deg,var(--red) 0 7px,var(--card) 7px 14px,var(--blue) 14px 21px,var(--card) 21px 28px)}.compose-head{flex:none;padding:12px var(--pad-r) 8px 26px;display:flex;align-items:center;justify-content:space-between;gap:12px}.step-dots{display:flex;gap:5px}.step-dots span{width:22px;height:3px;background:#1b2a222e;transition:background .2s}.step-dots span[data-on=true]{background:var(--ink)}.compose-body{flex:1;min-height:0;overflow-y:auto;padding:4px var(--pad-r) 10px 26px;display:flex;align-items:center;justify-content:center;container-type:size}.dropzone{--px: 1px;display:block;width:min(100%,calc(336 * var(--px)));aspect-ratio:3 / 2;flex:none;background:var(--card);border:1px solid var(--ink-16);box-shadow:0 calc(10 * var(--px)) calc(26 * var(--px)) #1b2a2224;padding:calc(11 * var(--px));transition:transform .18s}.dropzone:hover:not(:disabled){transform:translateY(calc(-3 * var(--px)))}.dropzone-inner{position:relative;width:100%;height:100%;border:calc(2 * var(--px)) dashed rgba(27,42,34,.28);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:calc(11 * var(--px));color:var(--ink-55);overflow:hidden;text-align:center}.dropzone[data-picked=true] .dropzone-inner{color:var(--red)}.dropzone-inner img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.dropzone-inner img+.dropzone-veil{position:absolute;top:0;right:0;bottom:0;left:0;background:#fbf7eeb8}.dropzone-inner>svg,.dropzone-cap,.dropzone-sub{position:relative}.dropzone-inner>svg{width:calc(46 * var(--px));height:calc(46 * var(--px))}.dropzone-cap{font:400 calc(12 * var(--px))/1.3 var(--mono);letter-spacing:.16em;text-transform:uppercase}.dropzone-sub{font:400 calc(8 * var(--px))/1.3 var(--mono);letter-spacing:.14em;text-transform:uppercase;opacity:.6}.writing-card{--px: 1px;width:min(100%,calc(336 * var(--px)));aspect-ratio:3 / 2;flex:none;background:var(--card-bright);border:1px solid var(--ink-16);box-shadow:0 calc(10 * var(--px)) calc(26 * var(--px)) #1b2a2224;padding:calc(13 * var(--px));position:relative;display:flex;gap:calc(12 * var(--px));animation:rise .32s ease-out;container-type:inline-size}.note-col{position:relative;width:55%;padding-right:calc(12 * var(--px));display:flex;flex-direction:column;min-height:0}.note-input{flex:1;width:100%;min-height:0;border:none;outline:none;resize:none;background-color:transparent;background-attachment:local;padding:0;border-radius:0}.note-input::placeholder{color:#1f3a6b73}.scan-btn{flex:none;align-self:flex-start;margin-top:calc(6 * var(--px));padding:calc(5 * var(--px)) calc(7 * var(--px));display:flex;align-items:center;gap:calc(6 * var(--px));border:1px solid rgba(27,42,34,.22);color:var(--ink-60)}.scan-btn:hover:not(:disabled){border-color:var(--ink);color:var(--ink)}.scan-btn svg{width:calc(15 * var(--px));height:calc(15 * var(--px))}.scan-btn span{font:400 calc(7 * var(--px))/1.3 var(--mono);letter-spacing:.12em;text-transform:uppercase}.scan-preview{flex:1;position:relative;overflow:hidden;background:repeating-linear-gradient(38deg,rgba(27,42,34,.12) 0 4px,transparent 4px 9px),#efe7d5;display:flex;align-items:flex-end;justify-content:center;padding-bottom:calc(5 * var(--px))}.scan-preview img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.scan-preview span{position:relative;font:400 calc(7 * var(--px))/1.3 var(--mono);letter-spacing:.1em;color:var(--ink-55);text-transform:uppercase;background:#fbf7eed9;padding:calc(2 * var(--px)) calc(5 * var(--px))}.addr-col{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:space-between;padding-left:calc(2 * var(--px))}.stamp-slot-row{display:flex;justify-content:flex-end}.stamp-slot{width:calc(46 * var(--px));flex:none;border:1px dashed rgba(27,42,34,.22);padding:calc(3 * var(--px));transition:transform .16s}.stamp-slot:hover{transform:translateY(calc(-2 * var(--px)))}.stamp-slot[data-empty=true]{animation:needglow 1.8s ease-in-out infinite}.stamp-slot-empty{aspect-ratio:88 / 116;display:flex;flex-direction:column;align-items:center;justify-content:center;font:400 calc(6 * var(--px))/1.4 var(--mono);letter-spacing:.1em;color:var(--ink-35);text-transform:uppercase;text-align:center}.addr{display:block;width:calc(100% + 6 * var(--px));padding:calc(3 * var(--px));margin:calc(-3 * var(--px));text-align:left}.addr[data-empty=true]{animation:needglow 1.8s ease-in-out infinite}.addr-label{font:400 calc(7 * var(--px))/1 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-35)}.addr-name{height:calc(16 * var(--px));margin-top:calc(6 * var(--px));border-bottom:1px solid var(--ink-16);font:400 calc(13 * var(--px))/calc(16 * var(--px)) var(--serif);color:#1b2a224d;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.addr-name[data-filled=true]{color:var(--ink)}.addr-line{height:calc(14 * var(--px));border-bottom:1px solid var(--ink-16);font:400 calc(8 * var(--px))/calc(14 * var(--px)) var(--mono);letter-spacing:.1em;color:var(--ink-55);text-transform:uppercase;overflow:hidden;white-space:nowrap}.addr-foot{font:400 calc(6 * var(--px))/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:#1b2a2252;margin-top:calc(9 * var(--px))}@media(min-width:700px)and (min-height:560px){.dropzone,.writing-card{--px: calc(min(100cqw, 150cqh) * .9 / 336)}}.compose-foot{flex:none;padding:0 var(--pad-r) max(14px,env(safe-area-inset-bottom)) 26px;display:flex;gap:10px}.btn-back{padding:15px 18px;border:1px solid rgba(27,42,34,.3);font:400 10px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase}.btn-send{flex:1;padding:15px;text-align:center;background:#1b2a2247;color:var(--card);font:400 11px/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;transition:background .2s}.btn-send[data-ready=true]{background:var(--ink)}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#1b2a22c7;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:26px;cursor:pointer;animation:rise .22s ease-out}.scrim-label{font:400 9px/1.4 var(--mono);letter-spacing:.18em;color:var(--card-cream);text-transform:uppercase;opacity:.8;text-align:center}.scrim-hint{font:400 8px/1.4 var(--mono);letter-spacing:.16em;color:var(--card-cream);text-transform:uppercase;opacity:.5;text-align:center}.book{width:100%;max-width:360px;max-height:230px;overflow-y:auto;background:var(--card);border:1px solid rgba(27,42,34,.2);cursor:default}.book-row{display:flex;align-items:center;gap:11px;width:100%;padding:9px 12px;border-bottom:1px solid var(--ink-08);text-align:left}.book-row:hover{background:#c4881f24}.book-row[data-picked=true]{background:#c4881f2e}.book-empty{padding:14px;font:400 11px/1.6 var(--sans);color:var(--ink-55)}.avatar{width:30px;height:30px;flex:none;display:flex;align-items:center;justify-content:center;font:400 12px/1 var(--serif);color:var(--card)}.avatar-sm{width:26px;height:26px;font-size:11px}.row-main{flex:1;min-width:0}.row-handle{display:block;font:400 13px/1.2 var(--sans);overflow:hidden;text-overflow:ellipsis}.row-sub{display:block;font:400 8px/1 var(--mono);letter-spacing:.14em;color:var(--ink-45);text-transform:uppercase;margin-top:4px}.book-row .row-sub{font-size:7px;margin-top:3px}.picker{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start;justify-content:center;max-width:600px;max-height:calc(100% - 60px);overflow-y:auto;padding:6px}.picker-stamp{width:84px;flex:none;outline-offset:4px;transition:transform .16s}.picker-stamp:hover{transform:translateY(-4px)}.picker-stamp[data-picked=true]{outline:2px solid var(--card-cream)}.zoom{flex-direction:row;flex-wrap:wrap;gap:34px;padding:30px}.zoom-stamp{width:196px;flex:none;transform:rotate(-1.6deg);filter:drop-shadow(0 10px 22px rgba(0,0,0,.4))}.zoom-info{color:var(--card-cream);max-width:250px}.zoom-country{display:flex;align-items:center;gap:7px;font:400 8px/1.3 var(--mono);letter-spacing:.18em;text-transform:uppercase;opacity:.75;margin-bottom:8px}.flag{width:16px;height:11px;flex:none;border:1px solid rgba(247,240,225,.5)}.zoom-title{font:400 26px/1.1 var(--display);text-transform:uppercase;letter-spacing:.02em}.zoom-series{font:400 9px/1.5 var(--mono);letter-spacing:.16em;text-transform:uppercase;opacity:.7;margin-top:9px}.zoom-from{font:400 12px/1.6 var(--sans);opacity:.85;margin-top:14px}.zoom-hint{font:400 8px/1.4 var(--mono);letter-spacing:.16em;text-transform:uppercase;opacity:.5;margin-top:18px}.scrim-dialog{padding:30px;cursor:default;animation-duration:.2s}.dialog{width:100%;max-width:340px;background:var(--card);border:1px solid rgba(27,42,34,.2);box-shadow:0 14px 32px #00000059;padding:20px 22px;text-align:left}.dialog-title{font:400 20px/1.15 var(--serif)}.dialog-body{font:400 11px/1.6 var(--sans);color:#1b2a22a6;margin-top:9px}.dialog-actions{display:flex;gap:9px;margin-top:18px}.dialog-actions button{flex:1;padding:11px;text-align:center;font:400 9px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase}.btn-line{border:1px solid rgba(27,42,34,.28)}.btn-red{background:var(--red);color:var(--card)}.btn-ink{background:var(--ink);color:var(--card)}.dialog-field{margin-top:14px}.dialog-field .kicker{font-size:8px;margin-bottom:6px}.sent{position:fixed;top:0;right:0;bottom:0;left:0;z-index:55;background:var(--ink);color:var(--card);display:flex;align-items:center;justify-content:center;gap:46px;padding:30px 40px;overflow:hidden;animation:rise .3s ease-out}.sent-grain{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;opacity:.18;mix-blend-mode:screen;pointer-events:none}.sent-globe{position:relative;width:min(260px,calc(100dvh - 60px));aspect-ratio:1;flex:none}.sent-globe svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible}.sent-dot{position:absolute;width:0;height:0}.sent-dot i{position:absolute;left:-5px;top:-5px;width:10px;height:10px;border-radius:50%;background:var(--red);box-shadow:0 0 0 4px #a8382a47;animation:fadeUp 2.1s ease-out both}.sent-card{position:absolute;left:-33px;top:-22px;width:66px;height:44px;background:var(--card-bright);border:1px solid rgba(27,42,34,.2);box-shadow:0 8px 18px #00000059;animation:fly 2.1s cubic-bezier(.35,.85,.3,1) both;display:flex;flex-direction:column;justify-content:space-between;padding:5px}.sent-card>:first-child{height:16px;background:repeating-linear-gradient(38deg,rgba(27,42,34,.14) 0 4px,transparent 4px 9px),var(--front)}.sent-card>:last-child{height:3px;background:#2b4a8b33}.sent-copy{position:relative;max-width:300px;animation:fadeUp 2.1s ease-out both}.sent-title{font:400 30px/1 var(--display);text-transform:uppercase;letter-spacing:.02em;color:#f2ecdf}.sent-line{font:400 9px/1.6 var(--mono);letter-spacing:.18em;text-transform:uppercase;opacity:.65;margin-top:11px}.sent-body{font:400 13px/1.6 var(--sans);opacity:.85;margin-top:14px}.sent-back{display:inline-flex;align-items:center;gap:9px;margin-top:20px;color:#f2ecdf;transition:transform .16s}.sent-back:hover{transform:translate(-3px)}.sent-back span{font:400 10px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase}.album-page{margin-top:20px;padding:16px 12px;background-color:var(--card);background-image:repeating-linear-gradient(90deg,rgba(27,42,34,.04) 0 1px,transparent 1px 12px);border:1px solid var(--ink-13)}.album-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(82px,1fr));gap:14px;justify-items:center}.album-cell{width:88px;position:relative;transform:var(--tilt);filter:drop-shadow(0 3px 5px rgba(27,42,34,.18));transition:transform .2s}.album-cell:hover{transform:var(--tilt) translateY(-4px) scale(1.04)}.album-tape{position:absolute;top:-7px;left:50%;margin-left:-15px;width:30px;height:13px;background:#c4881f52;border:1px solid rgba(196,136,31,.35);transform:var(--tape);z-index:2}.profile{display:flex;gap:26px;align-items:flex-start}.profile-card{width:188px;flex:none;display:flex;flex-direction:column;align-items:center}.polaroid{display:block;width:100%;background:var(--card-bright);padding:11px 11px 40px;box-shadow:0 6px 16px #1b2a2233;transform:rotate(-1.8deg);transition:transform .18s}.polaroid:hover{transform:rotate(-1.8deg) translateY(-3px)}.polaroid-inner{position:relative;width:100%;aspect-ratio:1;background:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;color:#f7f0e1a6;overflow:hidden}.polaroid-inner img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.polaroid-cap{font:400 7px/1.4 var(--mono);letter-spacing:.16em;text-transform:uppercase;text-align:center}.polaroid-cap span{display:block}.profile-handle{margin-top:16px;font:400 22px/1.1 var(--serif);text-align:center;word-break:break-word}.profile-caption{font:400 8px/1.4 var(--mono);letter-spacing:.16em;color:var(--ink-45);text-transform:uppercase;margin-top:6px;text-align:center}.profile-links{display:flex;gap:12px;margin-top:12px}.text-link{font:400 8px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-45);text-decoration:underline;text-underline-offset:3px}.text-link:hover{color:var(--red)}.profile-main{flex:1;min-width:0}.friend-add{display:flex;gap:9px;align-items:flex-end;margin-top:10px}.field{flex:1;width:100%;min-width:0;border:none;border-bottom:1px solid rgba(27,42,34,.3);border-radius:0;background:transparent;font:400 19px/1.3 var(--serif);color:var(--ink);padding:0 0 5px;outline:none}.field:focus{border-bottom-color:var(--red)}.btn-invite{flex:none;padding:10px 13px;background:#1b2a2247;color:var(--card);font:400 9px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;transition:background .2s}.btn-invite[data-ready=true]{background:var(--ink)}.friends-label{margin:20px 0 9px}.friend-list{background-color:var(--card);background-image:var(--grain);border:1px solid var(--ink-13)}.friend-row{display:flex;align-items:center;gap:12px;padding:11px 13px;border-bottom:1px solid var(--ink-08)}.friend-status{flex:none;font:400 8px/1 var(--mono);letter-spacing:.12em;color:#1b2a2266;text-transform:uppercase}.login{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px;text-align:center}.login-logo{width:min(150px,24dvh);aspect-ratio:150 / 154;object-fit:contain;transform:rotate(-2deg)}.login-title{font:400 34px/1 var(--display);color:var(--red);letter-spacing:.02em}.login-body{max-width:340px;font:400 13px/1.8 var(--sans);color:var(--ink-70);margin:0}.google-btn{display:inline-flex;align-items:center;gap:12px;margin-top:6px;padding:14px 22px;background:var(--card);border:1px solid var(--ink-25);box-shadow:0 6px 16px #1b2a2224;font:400 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;text-decoration:none;color:var(--ink);transition:transform .16s}.google-btn:hover{transform:translateY(-2px)}.login-error{border-color:var(--red);color:var(--red)}.center-fill{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}.spinner{width:22px;height:22px;border:2px solid var(--ink-25);border-top-color:var(--red);border-radius:50%;animation:spin .8s linear infinite}.toast{position:fixed;left:50%;bottom:max(20px,env(safe-area-inset-bottom));transform:translate(-50%);z-index:90;max-width:min(420px,calc(100vw - 32px));padding:12px 16px;background:var(--ink);color:var(--card);font:400 11px/1.5 var(--sans);box-shadow:0 10px 24px #0000004d;animation:rise .2s ease-out}.toast[data-kind=error]{background:var(--red)}@media(orientation:portrait)and (max-width:859px){.app{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto;grid-template-areas:"top" "stage" "side"}.topbar{display:flex;align-items:center;gap:10px;padding:calc(10px + env(safe-area-inset-top)) 18px 10px;border-bottom:1px solid var(--ink-13)}.topbar-logo{width:34px;height:35px;object-fit:contain;transform:rotate(-2deg)}.topbar-name{font:400 17px/1 var(--display);color:var(--red);letter-spacing:.02em}.topbar-sub{font:400 7px/1.4 var(--mono);letter-spacing:.2em;color:var(--ink-45);text-transform:uppercase}.topbar .lang{margin-left:auto}.side{flex-direction:row;gap:0;padding:0 0 env(safe-area-inset-bottom);overflow:visible;border-top:1px solid var(--ink-13)}.side>:first-child,.side>:last-child{margin:0}.side-brand{display:none}.nav{flex-direction:row;gap:0}.nav-item{flex:1;flex-direction:column-reverse;justify-content:center;gap:4px;padding:10px 2px}.nav-label{flex:none;font-size:9px;text-align:center}.panel,.panel-mailbox{padding:18px}.compose-head{padding:12px 18px 8px}.compose-body{padding:4px 18px 10px}.compose-foot{padding:0 18px 14px}.profile{flex-direction:column;align-items:stretch}.profile-card{margin:0 auto}.sent{flex-direction:column;gap:30px}.sent-copy{text-align:center}.zoom{flex-direction:column;flex-wrap:nowrap;gap:24px}.zoom-stamp{width:min(196px,50vw)}.toast{bottom:calc(72px + env(safe-area-inset-bottom))}}.dev-login{margin-top:10px;max-width:560px;display:flex;flex-direction:column;align-items:center;gap:10px}.dev-users{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}.dev-user{padding:8px 10px;font:400 9px/1 var(--mono);letter-spacing:.08em;background:var(--card)}.dev-user:hover{border-color:var(--red);color:var(--red)}
