*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--ink:#0e0c0a;--parchment:#f5f0e8;--cream:#faf7f2;--dust:#e8e0d0;--shadow:#c4b99a;--ember:#c45c2a;--ember-dim:#9a3e18;--smoke:#6b6358;--ghost:rgba(14,12,10,.06);--font-serif:"Cormorant Garamond","Noto Sans Khmer",Georgia,serif;--font-mono:"DM Mono","Noto Sans Khmer","Courier New",monospace;--radius:2px;--transition:.2s ease}html{font-size:16px;scroll-behavior:smooth}.page-enter-active{animation:pageIn .35s ease both}.page-leave-active{animation:pageOut .15s ease forwards;pointer-events:none}@keyframes pageIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes pageOut{0%{opacity:1}to{opacity:0}}body{background-color:var(--cream);color:var(--ink);font-family:var(--font-serif);line-height:1.6;min-height:100vh;-webkit-font-smoothing:antialiased}body:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='a'%3E%3CfeTurbulence baseFrequency='.9' numOctaves='4' stitchTiles='stitch' type='fractalNoise'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Cpath d='M0 0h300v300H0z' filter='url(%23a)' opacity='.03'/%3E%3C/svg%3E");content:"";top:0;right:0;bottom:0;left:0;opacity:.4;pointer-events:none;position:fixed;z-index:9999}h1,h2,h3,h4{font-family:var(--font-serif);font-weight:300;letter-spacing:-.01em;line-height:1.2}a{color:var(--ember);text-decoration:none;transition:color var(--transition)}a:hover{color:var(--ember-dim)}input,textarea{background:var(--parchment);border:1px solid var(--dust);border-radius:var(--radius);color:var(--ink);font-family:var(--font-serif);font-size:1rem;outline:none;padding:.75rem 1rem;transition:border-color var(--transition),box-shadow var(--transition);width:100%}input:focus,textarea:focus{border-color:var(--ember);box-shadow:0 0 0 3px #c45c2a14}input::-moz-placeholder,textarea::-moz-placeholder{color:var(--shadow);font-style:italic}input::placeholder,textarea::placeholder{color:var(--shadow);font-style:italic}button{border:none;cursor:pointer;font-family:var(--font-mono);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;transition:all var(--transition)}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:var(--parchment)}::-webkit-scrollbar-thumb{background:var(--shadow);border-radius:2px}@keyframes fadeUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes flicker{0%,to{opacity:1}50%{opacity:.85}}.fade-up{animation:fadeUp .6s cubic-bezier(.22,1,.36,1) forwards}.fade-in{animation:fadeIn .4s ease forwards}.splash{background:var(--ink);flex-direction:column;top:0;right:0;bottom:0;left:0;justify-content:center;position:fixed;z-index:99999}.splash,.splash-inner{align-items:center;display:flex}.splash-inner{animation:splashIn .6s cubic-bezier(.22,1,.36,1) forwards;gap:.75rem}.splash-mark{animation:splashPulse 1.5s ease-in-out infinite;color:var(--ember);font-size:1.8rem}.splash-name{color:var(--cream);font-family:var(--font-serif);font-size:2.2rem;font-weight:300;letter-spacing:.04em}@keyframes splashIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes splashPulse{0%,to{opacity:1}50%{opacity:.4}}.splash-leave-active{transition:opacity .4s ease}.splash-leave-to{opacity:0}.sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border:0}
